我在正则表达式方面不是很好,但是发生了不合逻辑的事情:
我用这个小提琴验证了正则表达式的语法:http: //jsfiddle.net/BcQfQ/2/然后将其替换\d
为另一个正则表达式以检查来自这里的网址: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");
如何在代码中编写正则表达式以使其正常工作?