我有一个字符串A,想测试另一个字符串B是否不属于其中。这是一个非常简单的正则表达式,其结果随后可以反转。
我可以做:
/foobar/.test('foobar@bar.de')
然后将其反转,如下所示:
!(/foobar/).test('foobar@bar.de')
我的问题是,我需要在正则表达式中执行此操作,而不要使用它们的结果。就像是:
/!foobar/.test('foobar@bar.de')
(不起作用)
换句话说:正则表达式应该测试是否存在,并在这种情况下返回true。
JavaScript有可能吗?
尝试:
/^(?!.*foobar)/.test('foobar@bar.de')
(简短)说明:
^ # 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”,则该正则表达式将从字符串开头开始查找。如果可以“看到”,则 没有 *匹配项。
*没有匹配项,因为它是 负面 的超前预测!