将字符串、js代码中的特殊字符转义

安企CMS模板中怎么将字符串、js代码中的特殊字符如HTML代码转义?


escape 过滤器可以将字符串中的特殊字符转义。比如将HTML代码输出显示,而不是解析HTML代码。如< 会转换为 <escape 它只转义五个这样的字符:<>&< 会转换为 <> 会转换为 >& 会转换为 & 会转换为 " 会转换为 '

也可以使用 e 来代替 escape。因为 eescape 的别名,使用效果一致。

默认地,所有的标签输出都是自动转义的。因此一般情况下可以忽略这个过滤器。在某种情况下可能会需要用到。

除了使用过滤器,也支持使用 autoescape 标签对整块代码进行转义。

escapejs 过滤器可以将js代码中的特殊字符进行转义。如\r 会转换为 \u000Descapejs 会将除了 a-zA-Z 或空格、/ 外的其它字符,都转换为 \uxxxx 的显示形式。

使用方法


escapee 过滤器的使用方法:

}
}

escapejs 过滤器的使用方法:

}

比如将 <script> 转义,则可以这么写:

}
}

显示结果

<script>
<script>

使用 autoescape 标签对整段代码进行转义处理。autoescape 标签需要一个参数来明确说明是需要转义还是不转义。 on 是转义, off 是不转义。

# 不转义

}

转义

}

显示结果

<script>alert(‘xss’);</script>
<script>alert('xss');</script>

示例演示

escapee 过滤器

直接输出结果:

}
}

显示结果

<script>
<script>

使用 autoescape

}

}

}

}

输出结果:

<script>alert('xss');</script>
<script>alert(‘xss’);</script>
<script>alert('xss');</script>
<script>alert('xss');</script>

escapejs 过滤器

}

显示结果

escape sequences \u000D\u000A\u005C\u0027\u005C\u0022 special chars \u0022\u003F\u0021\u003D\u0024\u003C\u003E

问题反馈可加技术微信:tsrz001