2012-03-03 6 views
0

JavaScriptの.replace()メソッドを使用して、シリアライズされたオブジェクトの配列をシンプルなシリアル化された文字列に変換しています。ここに私のコードです: .replace()メソッドで正規表現を使用する

b = //string 
b = b.replace(/},{/gi, "},cb,,{"); 
b = b.replace(/}],[{/gi, "},cb,,row,{"); //The error is being thrown for this line 

私は三行目は、「予期しないトークン/」エラーを取得していますこのコードを実行する

。どうしてこれなの?その行は、それより上の行とほぼ同じです。これを理解するのを助けてください。

注:部分文字列を複数回置き換える必要があるため、正規表現を指定しないで文字列を引数として渡すことはできません。

答えて

5

この文脈では、開口部[は、文字クラスを示す特殊文字です。後に]が存在しないため、エラーが発生します。

あなたは、単に仕事にあなたの正規表現のための[をエスケープする必要があります。

b = b.replace(/}],\[{/gi, "},cb,,row,{"); 

一貫性のために、彼らは同様に特殊文字なので、私は他のブレースの文字をエスケープすることを躊躇しないだろう(ただし、文字通りこの文脈で解析される):

b = b.replace(/\}\],\[\{/gi, "},cb,,row,{"); 
関連する問題