2015-05-02 61 views
3

我使用正则表达式负前瞻总是返回true

/(?!results)/i 

据我了解,它会匹配不包含单词“结果”的字符串。但是,当我尝试

/(?!results)/i.test('basketball results') 

它返回true。如何匹配不包含单词results的字符串?

回答

4

这个正则表达式匹配每一个后面没有results的位置。见demo

要匹配一个不包含results的表达式,您需要使用^(?!.*results.*$).*。见another demo

1

您可以使用简单的indexOf在这里检查。它将返回-1是子串不包含在字符串中,否则为零或更大:

"basketball results".indexOf('results') == -1