我想匹配所有以“.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/