ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で JSON 文字列内の改行文字をエスケープするにはどうすればよいですか?

JavaScript で JSON 文字列内の改行文字をエスケープするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 13:03:02464ブラウズ

How Do I Escape Newline Characters in JSON Strings with JavaScript?

JavaScript で改行文字を含む JSON 文字列をエスケープする

JSON 値に改行文字が含まれるシナリオでは、適切な JSON を得るために改行文字をエスケープすることが重要です文字列の形成。

改行文字のエスケープ

これを実現するには、JSON オブジェクトで JSON.stringify() メソッドを使用します。その後、replace() メソッドを使用して、n (改行文字) のすべてのインスタンスを \n に置き換えます。

例:

const jsonString = JSON.stringify({ value: 'This contains a newline\n' });
const escapedString = jsonString.replace(/\n/g, '\n');

エスケープその他の特殊文字

改行文字以外にも、JSON 文字列内の他の特殊文字をエスケープする必要が生じる場合があります。ただし、このようなすべての文字をエスケープするために特別に設計された一般的な JS ライブラリはありません。

カスタム エスケープ関数

これに対処するには、escapeSpecialChars というカスタム エスケープ関数を作成できます。 () を String オブジェクトのプロトタイプにアタッチします:

String.prototype.escapeSpecialChars = function() {
    return this.replace(/\n/g, "\n")
               .replace(/\'/g, "\'")
               .replace(/\"/g, '\"')
               .replace(/\&/g, "\&")
               .replace(/\r/g, "\r")
               .replace(/\t/g, "\t")
               .replace(/\b/g, "\b")
               .replace(/\f/g, "\f");
};

カスタム関数を使用した簡略化されたコード

カスタム関数を配置すると、コードは次のようになります:

const jsonString = JSON.stringify({ value: 'This contains a newline\n' });
const escapedString = jsonString.escapeSpecialChars();

この手法は、JSON 文字列内の改行文字とその他の潜在的な特殊文字の両方をエスケープします。

以上がJavaScript で JSON 文字列内の改行文字をエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。