我正在寻找一个正则表达式模式来匹配包含所有必需字符列表的字符串。
例如,如果我的要求是"abc"
:
匹配:"abacus"
, "back"
, "cab"
。
不匹配:"abs"
, "car"
, "banana"
。
到目前为止,我已经提出了这些(非正则表达式)方法:
function testA(requiredChars, checkString) {
return requiredChars.split('').every(char => checkString.indexOf(char) !== -1)
}
function testB(requiredChars, checkString) {
for (let char of requiredChars.split('')) {
if (checkString.indexOf(char) == -1) return false
}
return true
}
tests = [ 'abacus', 'back', 'cab', 'abs', 'car', 'banana' ]
tests.forEach(word => {
console.log(word, testA('abc', word), testB('abc', word))
})
// abacus true true
// back true true
// cab true true
// abs false false
// car false false
// banana false false
我喜欢第一个更小,但不幸的是第二个更快。使用正则表达式可以更快地完成这项工作,还是我应该在领先时退出?
婷婷同学_
Cats萌萌
相关分类