我只想在 URL 的主要部分后面没有跟任何数字的情况下执行一个函数。例如,我希望匹配以下 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 的一部分匹配?
最佳答案
使用 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");
}
关于javascript - 正则表达式 URL 没有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38758292/