摘要:学习冴羽的博客研究 underscore 中 escape 函数
escape
escape 函数,用于转义 HTML 字符串,替换 &, <, >, “, ‘, 和 ` 字符为字符实体,转义 HTML 可以防止一些别有用心的人获取用户信息。unescape 函数则将字符实体替换为对应字符
字符实体
在 HTML 中某些字符是预留的,如果要正确的显示预留字符,需要将 HTML 中的预留字符替换成对应的字符实体
字符实体有两种形式:
1 | &entity_name; // 实体名称 |
字符实体分三部分:第一部分是一个 & 符号;第二部分是实体名字或者是 # 加上实体编号;第三部分是一个分号。实体名称便于记忆,但是浏览器对实体编号的支持更好。实体编号就是字符的 unicode 值,以&#
开头的十进制编号或者以&#x
开头的十六进制编号。比如:
1 | var num = '<'.charCodeAt(0); // 60 |
常见字符实体:
1 | & --> & |
有的浏览器并不能很好的支持单引号和反引号的实体名称,因而使用实体编号
实现 escape、unescape
1 | var _ = {}; |
可以看到两个方法十分相似,只是构建正则的对象有些区别。相关的可以参考 《JS正则迷你书(1.1版)》笔记中第五个案例
抽象
1 | var _ = {}; |