2017-04-02 21 views
0

文字列内で各文字が何回出現するかをカウントするアプリケーションを作成しようとしています。たとえば、文字列 "hello 12355"では、 "hello"部分ではなく、1より前のすべての数字と一致するはずです。私は、コードを実行しようとすると、しかし、私は、コンソールでこれを取得する:無効な正規表現:何も繰り返しないエラー

「キャッチされないでSyntaxError:無効な正規表現:/ /:?新しい正規表現(で を繰り返すNothing)で、」私は変更

xyから92までは何でも、コードは正常に動作します。私がこのエラーについて読んだところでは、Regexpで何かを意味するので、いくつかの文字を二重にする必要があることを意味します。しかし、すべてのUnicode値に影響を与えることなく、Unicode変数を二重にすることはできません。誰も助けることができますか?私はあなたが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ステートメントを使ってこれらの特定のUnicode値をスキップしています。ありがとうございました! –

関連する問題