Javascript 实现HTML页面的Encode/Escape
概述
HTML/URL中有2个概念,encode和escape,乍一看差不多, 都是用于处理特殊字符(保留字符),其实用于不同场合:
- encode: 主要针对URL地址中特殊字符(保留字符)的处理, 如针对
&,?,=等字符 - escape: 主要针对页面中的特殊字符(保留字符)的处理, 如针对
<,>,",'字符
Escape
Escape/unescape 没有现成的函数,只能自己实现。实现也很简单,就是对字符串全文替换。
1 | function escapeHTML(str) { |
Encode/Decode
Javascript 中,针对URL的处理是有通用方法的,encodeURIComponent 和encodeURI,酌情选择所需的函数。
- encodeURI方法不会对下列字符编码: ASCII字母 数字 ~!@#$&*()=:/,;?+’
- encodeURIComponent方法不会对下列字符编码: ASCII字母 数字 ~!*()’
- 所以encodeURIComponent比encodeURI编码的范围更大。实际例子来说,encodeURIComponent会把 http:// 编码成 http%3A%2F%2F 而encodeURI却不会。