2015-01-08 4 views
0

: 그것은 허용 시퀀스 중 하나입니다 경우문제는, 내가이 질문에 대답하려고 해요

자바 스크립트 언어를 사용하여, 함수 SimpleSymbols (STR)이 STR 매개 변수를 사용 통과를 결정하고있다 true 또는 false 문자열을 반환합니다. str 매개 변수는 그 사이에 여러 문자가있는 + 및 = 기호로 구성됩니다 (예 : ++ d + === + C++ == a). 문자열이 참이면 각 문자는 + 기호로 묶어야합니다. 그래서 왼쪽의 문자열은 거짓입니다. 문자열은 비어 있지 않으며 적어도 하나의 문자를 갖습니다. 여기

내 솔루션입니다 : 나는 당신이 두 정규식을 사용 한 다음

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

/[a-z]/g는 모든 문자와 일치합니다 첫 번째 정규 표현식에 의해 반환 된 배열의 길이를 비교할 수 있다고 생각

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

/\+[a-z]\+/g은 뒤이어 있고 글자 + 앞에 오는 모든 문자와 일치합니다.

그런 다음 Array.length 속성을 사용하여 길이가 동일한 지 여부를 확인한 다음 Boolean 결과를 반환합니다. 저것과 같이 쉬운.