javascript - 否定前瞻正则表达式

标签 javascript regex regex-lookarounds

我想匹配所有以“.htm”结尾的字符串,除非它以“foo.htm”结尾。我通常对正则表达式很满意,但负面的前瞻让我感到难过。为什么这行不通?

/(?!foo)\.htm$/i.test("/foo.htm");  // returns true. I want false.

我应该改用什么?我想我需要一个“负面观察背后”表达式(如果 JavaScript 支持这样的事情,我知道它不支持)。

最佳答案

问题其实很简单。这将做到:

/^(?!.*foo\.htm$).*\.htm$/i.test("/foo.htm"); // returns false

关于javascript - 否定前瞻正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6851921/

相关文章:

javascript - 如何验证或检查文本内容包含电话、电子邮件 ID 或网址

javascript - 如果一组不匹配,.match() 返回 null

javascript - 奇怪的正则表达式匹配 node.js

java - 复杂模式匹配

javascript - jquery,找到一个字符串然后添加一个链接

javascript - 如何检查 window.history.back 在 javascript 中是否有值(value)

javascript - 从谷歌街景中的原始全景图向北行驶

java - 有没有办法改进这个正则表达式代码?

java - 如何在管道分隔文件中找到未被管道包围的字符串?

python - 函数定义上的正则表达式 findall。想要匹配参数但不匹配函数