目前我有这个:
const illegals = [/Foo/, /Bar/, /FooBar/];
var testTxt = "Foo Fighter";
var isMatch = illegals.some(rx => rx.test(testTxt));
,由于testTxt包含“ Foo”,因此它返回true。但我只想匹配全文(即“ Foo Fighter”),否则返回false。我这是怎么了?
答案 0 :(得分:4)
就像Vlaz已经发表评论一样,您需要在模式前后添加^
和
$
,以表明您希望匹配整个字符串。
const illegals = [/^Foo$/, /^Bar$/, /^FooBar$/];
var testTxt = "Foo Fighter";
console.log(illegals.some(rx => rx.test(testTxt))) // false
console.log(illegals.some(rx => rx.test('Bar'))) // true
console.log(illegals.some(rx => rx.test('Bar stool'))) // false
console.log(illegals.some(rx => rx.test('FooBar'))) // true