有没有人知道在jQuery中从字符串中转义HTML的简单方法?我需要能够传递任意字符串并将其正确转义以便在HTML页面中显示(防止JavaScript/HTML注入攻击).我确信可以扩展jQuery来实现这一点,但我目前还不了解框架来完成这个任务.
还有来自mustache.js的解决方案
var entityMap = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''', '/': '/', '`': '`', '=': '=' }; function escapeHtml (string) { return String(string).replace(/[&<>"'`=\/]/g, function (s) { return entityMap[s]; }); }
或明确地执行.
我最终得到了“&amp; amp; amp; amp;”。我在哪里可以买到万用表
为什么编码`/`?这是[不需要](http://stackoverflow.com/questions/7381974/which-characters-need-to-be-escaped-on-html).
2> travis..:由于您使用的是jQuery,因此您只需设置元素的
text
属性即可:// before: //textvar someHtmlString = ""; // set a DIV's text: $("div.someClass").text(someHtmlString); // after: //<script>alert('hi!');</script>// get the text in a string: var escaped = $("").text(someHtmlString).html(); // value: // <script>alert('hi!');</script>
您错过了必须访问$("div.someClass").html()以获取转义版本的要点.
@travis jQuery网站上记录了这一点:"由于不同浏览器中HTML解析器的不同,返回的文本可能因换行符和其他空格而异." http://api.jquery.com/text/
如果你的字符串中有空格和\n\r\t字符,那么这不是跨浏览器安全的
这不会逃避报价和双引号,这是不好的!http://wonko.com/post/html-escaping
@mklement如果你已经在使用这个解决方案,你就不会遇到任何问题:`$(element2).attr("some-attr",$(element1).html());`See这个例子:http://jsbin.com/atibig/1/edit
@travis谢谢; 我认为这是你暗示的,但只是为了明确:`attr()`做自己的编码,所以你可以直接传递未编码的文本*; 例如,`$(elem).attr("some-attr","Tags | 热门标签RankList | 热门文章
- 1在Pycharm和Kivy中使用while循环
- 2如果字段数组和参数数组相交,则过滤MongoDb集合
- 3不会执行php 7文件而不是执行
- 4Viewmodel没有定义键
- 5git-lfs:致命:无法处理这么大的文件(4.3G)
- 6Common Lisp中struct和class的区别
- 7Swift NSEvent无法正常工作
- 8如何配置ESLint以允许胖箭头类方法
- 9将零添加到列表中
- 10ruby 2.3安全运算符"&."之间的差异.和CoffeeScript存在运算符".?"
- 11如何优化1000个MySQL查询?
- 12如何通过Intellij的查找功能替换整行代码?
- 13需要在数组中找到唯一的数字
- 14元素'system.webServer'具有无效的子元素'httpPlatform'
- 15SVG沿路径重复对象或符号
- 16自定义NSDateFormatter.timeZone - Swift
- 17haskell中的圆形地图
- 18什么是原生Android与java?
- 19在大型数据集中提交每个案例时计算公开案例的有效方法
- 20在ReSharper 9.2中手动安装扩展
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有