我正在映射一个单词列表(也有随机字符),正则表达式似乎不起作用,最终导致错误。我基本上有一个const变量(称为content
)我想搜索以查看content
变量中是否有某些单词。
所以我有
if (list.words.map(lword=> {
const re = new RegExp("/" + lword+ "\\/g");
if (re.test(content)) {
return true;
}
}
但这只是失败了,并没有抓到任何东西。我得到一个Nothing to repeat
错误。具体来说:Uncaught SyntaxError: Invalid regular expression: //Lu(*\/g/: Nothing to repeat
我不知道如何搜索content
,看它是否包含lword
。
使用new RegExp()
时,不要将分隔符和修饰符放在字符串中,只是表达式。修饰符进入可选的第二个参数。
const re = new RegExp(lword, "g");
如果您想将lword
视为要搜索的文字字符串,而不是正则表达式模式,则不应首先使用RegExp
。只需用indexOf()
搜索它:
const list = {
words: ["this", "some", "words"]
};
const content = "There are some word here";
if (list.words.some(lword => content.indexOf(lword) != -1)) {
console.log("words were found");
}