这是我想到的:

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")


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!