js 转义html 字符串
2017-01-23 09:55
417 查看
/** JQuery Html Encoding、Decoding * 原理是利用JQuery自带的html()和text()函数可以转义Html字符 * 虚拟一个Div通过赋值和取值来得到想要的Html编码或者解码 */ <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> //Html编码获取Html转义实体 function htmlEncode(value){ return $('<div/>').text(value).html(); } //Html解码获取Html实体 function htmlDecode(value){ return $('<div/>').html(value).text(); } </script>
//编码 function html_encode(str) { var s = ""; if (str.length == 0) return ""; s = str.replace(/&/g, ">"); s = s.replace(/</g, "<"); s = s.replace(/>/g, ">"); s = s.replace(/ /g, " "); s = s.replace(/\'/g, "'"); s = s.replace(/\"/g, """); s = s.replace(/\n/g, "<br>"); return s; } //解码 function html_decode(str) { var s = ""; if (str.length == 0) return ""; s = str.replace(/>/g, "&"); s = s.replace(/</g, "<"); s = s.replace(/>/g, ">"); s = s.replace(/ /g, " "); s = s.replace(/'/g, "\'"); s = s.replace(/"/g, "\""); s = s.replace(/<br>/g, "\n"); return s; }
比如有这样的hltml代码:<a id="pcmobile" class="" " href="javascript:void(0);">PC&MOBILE</a><aid="test" href="javascript:void(0);"><</a>如果直接用$("#pcmobile").html()方法,那取得的值默认被浏览器转义了,原来的&变成了&。所以a标签里面的值变成PC&MOBILE。同样的,<被转义成<,>被转义成>。有时候为了防止xss注入,这种转义是有必要的,但是,如果不想被转义,解决方案很简单,不用html()方法 ,改成text()方法就行了.如$("#pcmobile").text()。
部分字符转义如下: &符号:"&", "&"
双引号:"\"", """
小于号:"<", "<"
大于号:">", ">"
单引号:"'", "'"
相关文章推荐
- atitit.js的 字符串内容 转义 js处理html
- atitit.js的 字符串内容 转义 js处理html
- js把预定义的html字符串转换为 HTML 实体 htmlspecialchars 输出html实体内容包括标签,而不自动转义标签,只显示内容,类似php的htmlspecialchars
- php自动截取中文字符串 和 取出html、css、js格式函数
- django 模板html自动转义符号和处理字符串在序列中自动加u
- JS拼装html字符串的最快方法
- js、html中的单引号、双引号及其转义使用
- 【转】小心转义符号 --- JS字符串字面量与字符串的值
- JS 利用数组拼接html字符串
- HTML代码转JS|C#字符串工具(附源代码)
- HTML代码转JS|C#字符串工具(附源代码)
- HTML转义字符串
- js字符串与html代码互相转换时怪想法:自己解析js字符串成普通字符串
- html和js中的转义
- django 模板html自动转义符号和处理字符串在序列中自动加u
- asp.net与js中字符串的HTML编码与解码
- js、html中的单引号、双引号及其转义使用
- HTML 字符串互转JS函数
- HTML字符实体 转义字符串列表