这是我想到的:
function isValid(str){
var letters = ['a','b','c','d','e','f','g','h','i','j','Z','N','L','Q','R'];
var parsedStr= str.trim().split(/\s+/); //returns array of each phrase seperated by a space, ex: ['Za', 'Nj']
if( (new RegExp( '\\b' + parsedStr.join('\\b|\\b') + '\\b') ).test(str) ) {
console.log('match');
}
}
但是我认为我的设置不正确。理想情况下,我希望它按空格解析字符串并将它们播放到数组中(我已经完成了),然后通过正则表达式检查 parsedStr 中的每个字母是否与接受的字母的 CONST 匹配。
例如
isValid("Za Zy")
=> 不匹配,因为 y 不是接受字符的 CONST 中的有效字符
isValid("Za Qf")
=> 匹配,因为此表达式中的每个字母都可以在 CONST 字母数组中找到。
我知道我需要在某处合并一个循环,但不确定如何:/
请您参考如下方法:
生成匹配空格和数组元素组合的正则表达式
function isValid(str) {
var letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'Z', 'N', 'L', 'Q', 'R'];
if ((new RegExp('^[\\s' + letters.join('') + ']+$')).test(str)) {
console.log('match ' + str);
} else {
console.log('not match ' + str);
}
}
isValid("Za Zy")
isValid("Za Qf")