gpt4 book ai didi

javascript - 在文本字符串中查找与 Twitter 使用完全相同的任何 URL

转载 作者:行者123 更新时间:2023-11-30 08:58:49 25 4
gpt4 key购买 nike

有很多类似的问题,但是他们没有回答没有 www.http:// 等的 url 的问题。我是什么要做的是检查字符串是否包含具有任何类型的 url 的 url。当您提交推文时,Twitter 会执行此操作。

可接受的 URL 包括但不限于:

我从 Daring Fireball 尝试过的两个正则表达式& This question :

var regex = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\"\\.,<>?\u00AB\u00BB\u201C\u201D\u2018\u2019]))/i;

var regex = /(?:<\w+.*?>|[^=!:'"\/]|^)((?:https?:\/\/|www\.)[-\w]+(?:\.[-\w]+)*(?::\d+)?(?:\/(?:(?:[~\w\+%-]|(?:[,.;@:][^\s$]))+)?)*(?:\?[\w\+%&=.;:-]+)?(?:\#[\w\-\.]*)?)(?:\p{P}|\s|<|$)/;

这是我正在做的测试的一个例子:http://jsfiddle.net/3Wn26/5/

最佳答案

我不认为有什么好方法可以可靠地(随着时间的推移)做到这一点。现在 new gTLDs are coming , 很难跟上。不管怎样,我试了一下。

/
(
\b
(?:(https?|ftp):\/\/)?
(
(?:www\d{0,3}\.)?
(
[a-z0-9.-]+\.
(?:[a-z]{2,4}|museum|travel)
(?:\/[^\/\s]+)*
)
)
\b
)
/ix

捕获组

  1. 完整的 URL,例如:http://www.google.com/anyquerystringSAY/Rfy/srA/yh
  2. 协议(protocol),例如:http
  3. URL 包括 www.,例如:www.google.com/swrua8rua8rUWRWAURHAJSrjuhFAhjT/Rtgfsbdh
  4. URL 不包括 www.,例如:google.com/sarwar8wa8r/R/A(R8images.google.com/w9r89w9ar8a9sjfriJRIUS(RY/(你

您可以选择用所有 ones listed here 替换 (?:[a-z]{2,4}|museum|travel) 位,但该列表永远不会停止增长,所以我怀疑它是否值得。 (你可以看到我添加了两个异常(exception) museumtravel。)

另请注意,我添加了 ftp,如果您不需要,请随时将其删除。

希望这对您有所帮助。

See it in action

关于javascript - 在文本字符串中查找与 Twitter 使用完全相同的任何 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11091257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com