[解決済み】JavaScriptでHtmlSpecialCharsに相当するものは何ですか?
2022-04-16 05:44:12
質問
どうやら、これは思ったより難しいようです。しかも、こんなに簡単なのに...。
PHPの htmlspecialchars をJavaScriptに組み込んだのでしょうか?自分で実装するのはかなり簡単だと思いますが、もしあれば組み込みの関数を使う方がすっきりします。
PHP に慣れていない人のために説明すると、htmlspecialchars は以下のようなものを翻訳します。
<htmltag/>
を
<htmltag/>
知っている
escape()
と
encodeURI()
はこのように動作しません。
解決方法は?
このコードには問題があり、各特殊文字の最初の出現箇所のみをエスケープしてしまいます。例えば
escapeHtml('Kip\'s <b>evil</b> "test" code\'s here');
Actual: Kip's <b>evil</b> "test" code's here
Expected: Kip's <b>evil</b> "test" code's here
以下は、正常に動作するコードです。
function escapeHtml(text) {
return text
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
更新情報
次のコードは、上記と同じ結果をもたらしますが、特に大きなテキストブロックでは、より良いパフォーマンスを発揮します(感謝 jbo5112 ).
function escapeHtml(text) {
var map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
return text.replace(/[&<>"']/g, function(m) { return map[m]; });
}
関連
-
[解決済み】<select>で現在選択されている<option>をJavaScriptで取得するにはどうすればよいですか?
-
nodejs unhandledPromiseRejectionWarning メッセージ
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み】JavaScript版sleep()とは?)
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
元のイベントが実行されなかった後に要素を追加するためのjQueryソリューション
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み】JavaScriptでインラインIF文の書き方は?
-
[解決済み] jQueryでHTML文字列をエスケープする
-
[解決済み】JavaScriptでHTMLの特殊文字をエスケープすることはできますか?
-
[解決済み】HTMLエンティティのデコード【重複あり
-
[解決済み] JavaScriptで特殊文字をHTMLに変換する