如何使用JavaScript正则表达式来检查不包含某些单词的字符串?
例如,我想要一个函数,当传递一个包含abc
或def
的字符串时,返回false。
'abcd' -> false
'cdef' -> false
'bcd' -> true
编辑
最好能够使用像[ ^ abc]这样简单的正则表达式,但它不能按预期提供结果,因为我需要连续字母。
例如:我需要myregex
if ( myregex.test('bcd') ) alert('the string does not contain abc or def');
myregex.test('bcd')
语句的结果为true
。
^((?!((?=\b)abc(?=\b)|(?=\b)def(?=\b))).)*$
。如果它不包含任何单词“abc”或“def”,它将捕获整个文本(有点像,注意最后一个字符)。因此,它将匹配“abcd”,但不会匹配“abc?”因为“?”不是单词的一部分。 - Karl Stephen^((?!(\babc\b|\bdef\b)).)*$
。为了捕获“abcd”,但如果文本包含“abc”或“def”,则丢弃整个文本,最好先检查是否存在“abc”或“def”,如果没有,则继续匹配包含“abc”或“def”的单词... 但是...这有任何有用的目的吗? - Karl Stephen