【发布时间】:2013-11-16 03:36:18
【问题描述】:
我在这里找到了一个寻找匹配网址的正则表达式:http://daringfireball.net/2010/07/improved_regex_for_matching_urls,正则表达式是:
(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))
但是当我尝试在我的 js 文件中使用它时,萤火虫显示了 SyntaxError: syntax error just in this part (?i)
我使用如下的正则表达式:
text = $('textarea').val();
url_regex = (?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]));
match = url_regex.exec(text);
请问哪里有问题?
【问题讨论】:
-
你是把那行直接复制粘贴到你的js中,还是周围有更多的代码?
-
stackoverflow.com/questions/15145659/… 解释 (?i) 关闭区分大小写 (?-1) 重新开启区分大小写。
-
我更新我的问题,我复制并粘贴该行而不修改,然后将其分配给 url_regex 变量
-
您需要在模式中添加分隔符。将其包裹在
/字符中以告诉 Javascript 它是一个正则表达式。 -
你的正则表达式需要被
/../围起来——见developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript