麻烦的Javascript简单的coderbyte挑战

时间:2015-01-08 04:08:20

标签: javascript string challenge-response

我试图回答这个问题:

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

这是我的解决方案:

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; 

};

1 个答案:

答案 0 :(得分: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结果。就这么简单。