转义字符串为了什么?
转义字符串(Escape Sequence)也称字符实体(Character Entity)。在HTML中,定义转义字符串的原因有两个:第一个原因是像“<”和“>”这类符号已经用来表示HTML标签,因此就不能直接当做文本中的符号来使用。为了在HTML文档中使用这些符号,就需要定义它的转义字符串。当解释程序遇到这类字符串时就把它解释为真实的字符。在输入转义字符串时,要严格遵守字母大小写的规则。第二个原因是,有些字符在ASCII字符集中没有定义,因此需要使用转义字符串来表示。
例如:
- HTML的< >&"©分别是<,>,&,”,©;的转义字符
- XML只有5个转义符: < >& " '
本文中用到的函数:
下面的函数对一部分字符进行了转义。可以从entityMap对象中看到。
函数:
var entityMap = { '&': '&', '<': '<', '>': '>', '"': '"', '\'': ''', '/': '/' // 也可以结合自己的实际情况,增加这里的项目。 }; function escapeHtml(string) { 'use strict'; //noinspection JSUnresolvedFunction string = String(string).replace(new RegExp('\r?\n', 'g'), '<br />'); string = String(string).replace(/\\/g, '\'); return String(string).replace(/[&<>"'\/]/g, function (s) { return entityMap[s]; }); }
用法:
如果想对str进行转义,再赋给新的变量strNew则:
var strNew = escapeHtml(str);
就可以了。
补充:
另外出于网站的安全。在数据写入数据库前,都会使用转义字符(函数)对一些敏感字符进行转义。这样做可以避免一些别有用心的人利用特殊符号的注入攻击。
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。