次のJavaScript行があります。
YAHOO.lang.JSON.parse(txt)
text は、データベースから取得される文字列です。これは、返された問題のある文字列の 1 つの例です。
5000\25\30%
私が知る限り、JSON パーサーは / 文字で構文エラーをスローしています。ここでスレッドを調べたところ、ほとんどのスレッドは「//」に変更するように言っていますが、データベースから何百もの値を取得しているため、ソースを変更できません。実際には「/」を表示する必要がないため、「/」文字を空の文字列だけに置き換えようとしていますが、問題があります。私の現在の置換コードは次のようになります。
if(substr.indexOf("\\") > 0){
substr.replace(/\\/g , "");
}
しかし、何も起こっていません。「indexOf」チェックが失敗することがあるので、すべての文字列で置換を実行しようとしましたが、それでも「\」文字は置換されませんでした。ここに私の質問があります。1 つ以上の '\' 文字を含む文字列が返され、JavaScript を使用して JSON パーサーのためにそれらを削除する必要がある場合、どうすればよいですか。または、ソース文字列を変更せずに「\」文字を受け入れるように JSON パーサーを取得するにはどうすればよいですか。
編集:問題は、「\2」と他のすべての文字が評価され、何もしない文字を除外していることだと思います。これらの文字は常にエスケープされるため、置き換えることはできません。これはエラーを修正することさえ可能ですか?