2017-04-02 2 views
0

주어진 문자열에서 각 문자가 몇 번 발생하는지 계산하는 앱을 만들려고합니다. 예를 들어, 문자열 "hello 12355"에서 "hello"부분이 아닌 1이 지난 모든 숫자와 일치해야합니다.유효하지 않은 정규 표현식 : 반복 할 오류 없음

: 나는 코드를 실행하려고 할 때, 나는 콘솔이 얻을 "catch되지 않은 구문 에러 : 잘못된 정규 표현식 :// : 아무것도 새로운 정규식()에서 를 반복하지 않으려면"

내가 변경 그러나 xy부터 92까지는 코드가 정상적으로 실행됩니다. 이 오류에 대해 읽은 것부터는 Regexp에서 무언가를 의미하기 때문에 일부 문자를 백 슬래시로 두 번 사용해야한다는 것을 의미합니다. 그러나 모든 유니 코드 값에 영향을 미치지 않고 유니 코드 변수를 두 번 백 슬래시로 사용할 수는 없습니다. 누구든지 도와 줄 수 있습니까? 난 당신이 unicodeChar 위해 통과 일부 문자가 Regex에 특수 문자가 (당신의 오류, 그것은 63입니다 ?의)이기 때문에 그런 일이 생각

var occArray = []; 
var occChars = []; 

var xy = 50; 

for (i = xy; i < 100; i++) { 
    var unicodeChar = String.fromCharCode(i); 
    var counter = new RegExp(unicodeChar, 'g'); 
    var occurence = "hello 12355"; 
    var occ = (occurence.match(counter) || []).length; 

    occArray.push(occ);  
    occChars.push(unicodeChar); 
} 
    alert(occArray); 
    alert(occChars); 
+0

가능한 [JavaScript 정규식 "반복 할 수 없음"오류] (http://stackoverflow.com/questions/10650443/javascript-regular-expression-nothing-to-repeat-error) –

답변

2

:

여기 내 코드입니다. 그것이 특수 문자인지 여부를 감지하기 위해 고려해보십시오. 그렇다면 Regex에 전달하기 전에 백 슬래시를 추가 할 수 있습니다.

이 정보가 도움이 될 수 있습니다.

+0

예, 문제의 원인이되는 물음표와 쌍둥이 기호가되어야합니다. if 문을 사용하여 특정 유니 코드 값을 건너 뛰고 이제는 작동합니다. 고맙습니다! –