ホームページ  >  記事  >  ウェブフロントエンド  >  htmlencode() および htmldecode() 関数を実装するための JavaScript の代替メソッドの分析例

htmlencode() および htmldecode() 関数を実装するための JavaScript の代替メソッドの分析例

高洛峰
高洛峰オリジナル
2016-12-06 15:11:531253ブラウズ

この記事の例では、htmlencode() 関数と htmldecode() 関数を実装するための JavaScript の代替方法について説明します。詳細は次のとおりです。

最も一般的な方法は、HTML エンコード時にこのように置き換えるのが簡単です。一般的な a8093152e673feb7aba1828c43532094& に加えて、©"® などの文字エンティティが多数あるため、HTML をデコードするときに使用するのは簡単ではないかもしれません。 AB 中国語や中国語など。Unicode でエンコードされた 10 進数または 16 進数の文字をすべて列挙するのは、時間がかかり非効率であるだけでなく、いくつかの文字を見逃しやすくなります。

function htmlencode(s){
  var div = document.createElement('div');
  div.appendChild(document.createTextNode(s));
  return div.innerHTML;
}
function htmldecode(s){
  var div = document.createElement('div');
  div.innerHTML = s;
  return div.innerText || div.textContent;
}

とても簡単です!

エンコードの原則は、TextNode ノードを作成し、それをコンテナーにアタッチしてから、コンテナーの innerHTML を取得することです。コンテナの innerHTML に文字列を追加し、innerText または textContent を取得します。

テストしてください:

入力パラメータが正当でない場合、効果は良好です。エンコードされた結果は、期待した結果が得られない可能性があります。

Google で検索したところ、cnblogs で私と同じ考えの記事が見つかりました。 =||= ですが、彼の htmldecode コード。それは間違っています

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