XML の文字列を返す JavaScript 関数を使用しています。ただし、IE 内では、XML の文字列にエスケープ文字が埋め込まれて返されます。たとえば、二重引用符は \" " ではなく " エスケープされた文字シーケンス項目を削除する簡単な方法はありますか?
ありがとう、デレク
3 に答える
これを修正する前に、他のどの文字が置き換えられているかを調査する必要があります。たとえば\
、他のブラウザでシングルを取得すると\\
、IE で取得しますか?
標準の C エスケープが追加されている場合、 は、 、、 、改行などのJSON.parse
シーケンスを変換し\"
ます。"
\\
\
\n
'foo\\bar\nbaz"' === JSON.parse('"foo\\\\bar\\nbaz\\""')
JSON.parse
最近のブラウザでネイティブにサポートされており、特に IE では IE 8 までサポートされています。関連する MSDN ページには次のように書かれています。
次のドキュメント モードでサポートされています: Internet Explorer 8 標準、Internet Explorer 9 標準、Internet Explorer 10 標準。Windows ストア アプリでもサポートされています。バージョン情報を参照してください。
次のドキュメント モードではサポートされていません: Quirks、Internet Explorer 6 標準、Internet Explorer 7 標準。
同様の質問: Javascript - 文字列リテラルのエスケープ文字を置き換えるには、エスケープ文字を置き換える方法が説明されています。エスケープ文字を空の引用符に置き換えることはできますか?
JavaScript のreplace()
メソッドを使用します。
jsFiddle :
var string1 = "This is a string with all the \\\" characters escaped";
document.write(string1); // outputs: This is a string with all the \" characters escaped
document.write("<br />");
string1 = string1.replace("\\", "");
document.write(string1); // outputs: This is a string with all the " characters escaped