gpt4 book ai didi

javascript - javascript 中正则表达式的非常奇怪的结果

转载 作者:行者123 更新时间:2023-11-29 09:56:40 26 4
gpt4 key购买 nike

我不太擅长正则表达式,但发生了一件不合逻辑的事情:
我用这个 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");

如何在代码中编写正则表达式才能使其正常工作?

最佳答案

您必须使用反斜杠转义分隔符 ("/")。定界符标记表达式的开始和结束。只有在用反斜杠转义时才能使用斜杠。以下表达式应该有效:

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`!()\[\]{};:'".,<>?«»“”‘’]))/;

关于javascript - javascript 中正则表达式的非常奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10503931/

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