0

我试图回答这个问题:

使用 JavaScript 语言,让函数 SimpleSymbols(str) 获取传递的 str 参数,并通过返回字符串 true 或 false 来确定它是否是可接受的序列。str 参数将由 + 和 = 符号组成,它们之间有几个字母(即 ++d+===+c++==a),并且要使字符串为真,每个字母必须用 + 符号包围。所以左边的字符串是假的。该字符串不会为空,并且至少包含一个字母。

这是我的解决方案:

function SimpleSymbols(str) { 
var test;

  for (var i =0; i<str.length; i++){

    if ((str.charAt(i)!== '+' && str.charAt(i+1) === str.match(/[a-z]/))
    ||(str.charAt(i+1) === str.match(/[a-z]/) && str.charAt(i+2) !== '+')){
    test = false;
    break;
    }  

    else if (str.charAt(0) === str.match(/[a-z]/)){
         test = false;
         break;}

     else {
      test= true;}


  } 
  return test; 

};
4

1 回答 1

1

我认为您可以只使用两个正则表达式,然后比较它们返回的数组的长度

function SimpleSymbols(str){
   return str.match(/[a-z]/g).length == str.match(/\+[a-z]\+/g).length;
}

第一个正则表达式/[a-z]/g将匹配所有字母,/\+[a-z]\+/g并将匹配后面和前面的所有字母+

然后,我们只需使用该Array.length属性检查长度是否相同,然后返回Boolean结果。就如此容易。

于 2015-01-08T04:13:14.773 回答