Javascript 正则表达式不包含多个单词

Javascript 正则表达式不包含多个单词,javascript,regex,Javascript,Regex,如何使用正则表达式避免字符串中的某些单词 ^((?!(sample|test)).)*$ 字符串不应包含测试、示例单词 使用下面的表达式 ^((?!(sample|test)).)*$ 我能做到,但在某些情况下失败了 example: 1) this is a test case 2) this is a testing area 在上述两个样本案例中 1.它有一个单词测试,因此工作正常,但在示例中 2) 它没有文字测试,它应该是低的 有没有办法做到这一点?感谢您宝

如何使用正则表达式避免字符串中的某些单词

^((?!(sample|test)).)*$
字符串不应包含测试、示例单词 使用下面的表达式

^((?!(sample|test)).)*$
我能做到,但在某些情况下失败了

 example: 
    1) this is a test case 
    2) this is a testing area 
在上述两个样本案例中

1.它有一个单词测试,因此工作正常,但在示例中
2) 它没有文字测试,它应该是低的


有没有办法做到这一点?感谢您宝贵的时间和回复

您需要在单词周围使用
\b
,这样它们才允许匹配,前提是它们不是完整的单词。试着用这个

^(?:(?!\b(sample|test)\b).)*$
此外,将一个组设置为非捕获组也是一个好主意,除非您打算使用它们的价值

编辑:

要使其区分大小写,请通过将
i
放在regex中的
/
后面来启用
i
标志。JS演示

var arr=['这是一个测试用例','这是一个测试区域','这是一个测试区域']
arr.forEach(s=>console.log(s+“-->”+/^(?:(?!\b(sample | test)\b)。*$/i.test(s))
试试这个正则表达式(单词boundry'\b'是必需的,而且在这些示例单词之前可以有任意数量的字符):

它也将匹配空字符串,因为它不包含示例或测试词。要检查字符串是否不能为空且不包含样本和测试词,请使用:

/^(?!.*?\b(sample|test)\b).+?/

matches但是match是一个空字符串,锚定在line@NahuelFouilleul是的,它将匹配空字符串,顺便说一句,它不包含样本或测试词。我想这是必需的。事实上,问题中的标记更有效,如何使它在这种区分大小写的情况下工作是一个测试用例,您可以将
i
放在
/
之后,像
/regex/i
一样放在正则表达式中,并使其不区分大小写。