javascript - 正则表达式 URL 没有数字

标签 javascript regex

我只想在 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");  
}

Regex101 Demo

关于javascript - 正则表达式 URL 没有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38758292/

相关文章:

Javascript 在指定目录中创建 HTML 文件

python - 使用Python re的多模式嵌套正则表达式

regex - 如何仅在 powershell 的子字符串中替换特定字符

c# - 正则表达式 'or' 运算符避免重复

javascript - 满足条件时计数错误

javascript - 使用 Mustache JS 进行 Ajax 分页?

c# - 将数据加载到动态填充的部分 View 中的选择下拉菜单

java - Mongodb 中不区分大小写的搜索

javascript - 正则表达式删除所有前导和尾随特殊字符?

javascript - JavaScript 是否有等效的方法来实现 c# 样式的自动属性而无需大量开销?