用于在测试中排除字符串的javascript正则表达式
这个javascript正则表达式试图匹配“good job”或“good game”,但不匹配“good boy” 你知道如何通过在“好孩子”中返回false来实现它吗?谢谢用于在测试中排除字符串的javascript正则表达式,javascript,regex,Javascript,Regex,这个javascript正则表达式试图匹配“good job”或“good game”,但不匹配“good boy” 你知道如何通过在“好孩子”中返回false来实现它吗?谢谢 let strArr=[“干得好”、“玩得好”、“乖孩子”]; 对于(i=0;i
let strArr=[“干得好”、“玩得好”、“乖孩子”];
对于(i=0;i }
如果您只需要匹配“好工作”或“好游戏”
let strArr=[“干得好”、“玩得好”、“乖孩子”];
对于(i=0;i }
尝试以下正则表达式:
let res= /good(?! boy)/ig.test(strArr[i])
这取决于你是否想把它局限于“工作”和“游戏”。否则,你自己尝试的下半部分几乎做到了。将其转换为负面展望,而不是正面展望:
good(?! boy)
将匹配好,然后是任何但男孩
然后再一次。。。可以稍微擦一擦
\bgood\s(?!boy\b)\w+
匹配单词good
,后跟另一个不是boy的单词
或者,要仅允许一行中的两个单词,请添加开始/结束锚定:
^good\s(?!boy\b)\w+$
.只需使用:
/\b好的(?:job | game)\b/g
FYI:使用g
修饰符并将正则表达式传递给RegExp#test()
不是一个好主意<代码>/\b好的(?:工作|游戏)\b/就可以了。除非good
可以以非单词字符开头,或者job/game
可以以非单词字符结尾。这很好。请看我关于锚的回答。也许/\b好(工作|游戏)\b/
会更好。还要注意Wiktor对问题的评论。