我不是很擅长正则表达式,但这里有一个不合逻辑的问题:
我使用了这个 fiddle 来验证正则表达式的语法: http://jsfiddle.net/BcQfQ/2/,然后将
我使用了这个 fiddle 来验证正则表达式的语法: http://jsfiddle.net/BcQfQ/2/,然后将
\d
替换为另一个正则表达式,以检查来自此处的 URL :http://daringfireball.net/2010/07/improved_regex_for_matching_urls ,但它无法正常工作: http://jsfiddle.net/bNHQs/2/。最奇怪的是,当您复制正则表达式并将其粘贴到文本框中(然后在代码中写入 textbox.value),一切都正常:http://jsfiddle.net/6uAQG/2/。
不起作用的正则表达式代码:
var reg=/\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/;
var str="2";
if(str.match(reg))alert("test:true");
else alert("test:false");
如何在代码中编写正则表达式以使其正常工作?