0

次の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」と他のすべての文字が評価され、何もしない文字を除外していることだと思います。これらの文字は常にエスケープされるため、置き換えることはできません。これはエラーを修正することさえ可能ですか?

4

1 に答える 1

0

私はこれを理解することができました。データベースからの最初の戻り値を作成していたjsonWriteを変更し、replaceAll( "\ x5C"、 "\")を実行して、文字をhtmlコードに置き換えて、引き続き表示され、解析できるようにしました。 .

于 2010-10-05T17:16:21.090 に答える