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
一样放在正则表达式中,并使其不区分大小写。