如何在JavaScript中反转正则表达式?

我有一个字符串A,并想测试如果另一个字符串B不是它的一部分。这是一个非常
简单的正则表达式,其结果可以在之后反转。

我可以:

/foobar/.test('foobar@bar.de')

然后反转它,像这样:

!(/foobar/).test('foobar@bar.de') 

我所遇到的问题是,我需要在正则表达式而不是他们的结果。就像是:

/!foobar/.test('foobar@bar.de')

(不工作)

换句话说:正则表达式应该测试一个不存在,在这种情况下返回true。

这是可能用JavaScript吗?

尝试:

/^(?!.*foobar)/.test('foobar@bar.de')

A(简短)说明:

^          # start of the string 
(?!        # start negative look-ahead
  .*       # zero or more characters of any kind (except line terminators)
  foobar   # foobar
)          # end negative look-ahead

所以,在纯英语中,正则表达式将从字符串的开头查看字符串’foobar’可以“看到”。如果它可以“看到”,没有*匹配。

*没有匹配,因为它是负面前瞻!

更多关于这个前瞻性的东西:http://www.regular-expressions.info/lookaround.html但请注意,JavaScript只支持前瞻,没有后备!

http://stackoverflow.com/questions/1538512/how-can-i-invert-a-regular-expression-in-javascript

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何在JavaScript中反转正则表达式?