0

私はこの質問に答えようとしています:

JavaScript 言語を使用して、関数 SimpleSymbols(str) に渡された str パラメーターを取得させ、文字列 true または false を返すことによって、それが受け入れ可能なシーケンスであるかどうかを判断します。str パラメーターは + 記号と = 記号で構成され、その間に複数の文字が入ります (つまり、++d+===+c++==a)。文字列が true であるためには、各文字が + 記号で囲まれている必要があります。したがって、左側の文字列は false になります。文字列は空ではなく、少なくとも 1 つの文字が含まれます。

これが私の解決策です:

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

2つの正規表現を使用して、それらによって返される配列の長さを比較できると思います

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 に答える