如果URL的主要部分后面没有任何数字,我想只执行一个函数。例如,我希望以下网址匹配:
http://link.com/groups
但不是
http://link.com:8001/
或http://link.com:8000/?alert=true
我已经将正则表达式/link.com[^0-9]+/
聚集在一起但它仍然匹配我不想匹配的链接的第一部分,所以当我有声明时:
var link = document.URL;
var re = /link.com[^0-9]+/;
if (re.exec(link)){
console.log("hello");
}
"你好"仍然会退出。如果URL的主要部分之后没有数字,即使URL的一部分匹配,有没有办法只执行该功能?
答案 0 :(得分:3)
使用negative lookahead (?!...)
/link\.com(?!:\d)/
var link = "http://link.com:8000/?alert=true";
var re = /link\.com(?!:\d)/;
if (re.exec(link)) {
console.log("hello");
} else {
console.log("no match");
}