正则表达式与值数组匹配



目前我有这个:

const illegals = [/Foo/, /Bar/, /FooBar/];
var testTxt = "Foo Fighter";
var isMatch = illegals.some(rx => rx.test(testTxt));

由于testTxt包含"Foo",因此返回true。但我只想匹配它是否与全文匹配(即"Foo Fighter"(,否则返回 false。我在这里做错了什么?

就像 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

最新更新