2015-01-08 73 views
0

我試圖回答這個問題:麻煩的JavaScript容易coderbyte挑戰

使用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

我想你可以只使用兩個正則表達式,然後比較它們

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結果。就如此容易。