ホームページ > 記事 > ウェブフロントエンド > コンテンツ管理システムで一貫したレンダリングを行うために JavaScript で HTML エンティティをエンコードするにはどうすればよいですか?
問題:
コンテンツ管理システムにより、ユーザーは次のような特殊文字を含むコンテンツを入力できます。 ® を使用すると、ブラウザ間でレンダリングが一貫しない可能性があります。目標は、これらの文字を対応する HTML エンティティに変換し、 で囲むことです。
解決策:
正規表現の使用
JavaScript の正規表現は、この問題に対する包括的な解決策を提供します。 task:
<code class="javascript">var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/g, function(i) { return '&#'+i.charCodeAt(0)+';'; });</code>
このコードは、正規表現を使用して、Unicode 範囲 (00A0 ~ 9999) 内の文字、およびアンパサンド、小なり、大なりの記号を検索します。次に、先頭に「」を追加し、Unicode 値を追加することで、それらを HTML 文字エンティティに変換します。
例:
<code class="javascript">var result = encodeHTML('Test ® & ©'); // "Test <sup>&reg;</sup> &amp; <sup>&copy;</sup>"</code>
カスタマイズ可能な置換関数
より詳細に制御するには、カスタム置換関数を指定できます。
<code class="javascript">var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/g, (i) => `<sup>&#${i.charCodeAt(0)};</sup>`);</code>
この関数は、HTML エンティティを で囲みます。
追加の考慮事項:
ドキュメント:
以上がコンテンツ管理システムで一貫したレンダリングを行うために JavaScript で HTML エンティティをエンコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。