如何在javascript中进行HttpUtility.HtmlDecode
How to HttpUtility.HtmlDecode in javascript
我有一个localStorage,里面有一个字符串,如下所示:
"ABC&nbps;&nbps;&nbps;&nbps;ABC Description"
我从localStorage获得这个字符串,我需要将这个字符串的值设置为下拉控件的Option,用空格替换无中断空间实体(以便与其他选项对齐)。
在ASP.NET的代码中,我会使用HttpUtility.HtmlDecode。但是如何在javascript中解码这个字符串呢?
您可以使用以下代码将HTML转换为文本(仅使用javascript)
var span = document.createElement("SPAN");
span.innerHTML = "ABC ABC Description";
alert(span.innerText);
它创建一个伪元素,将其HTML设置为HTML并提取文本。
注意,它应该是nbsp
(非中断空间),而不是nbps
也就是说,你这样做的方式表明你允许用户输入任意的HTML。就安全性而言,这不是一个好主意(用户可能会在该字段中输入恶意HTML)。
这个问题在这里之前已经回答过了。但它是
而不是&nbps;
。要解码带有&nbps;
的错误标记,您必须手动替换:whatever.replace('&nbps;', ' ');
剥离脚本标记比让浏览器解析原始HTML更安全。这将防止恶意代码被执行。。。
var decodeEntities = (function() {
// this prevents any overhead from creating the object each time
var element = document.createElement('div');
function decodeHTMLEntities (str) {
if(str && typeof str === 'string') {
// strip script/html tags
str = str.replace(/<script[^>]*>(['S's]*?)<'/script>/gmi, '');
str = str.replace(/<'/?'w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
element.innerHTML = str;
str = element.textContent;
element.textContent = '';
}
return str;
}
return decodeHTMLEntities;
})();
http://jsfiddle.net/LYteC/4/
如果您在客户端使用Jquery,请将其转换为html。
theHtml = $.parseHTML( "ABC ABC Description" );
相关文章:
- window.location.htm无法在chrome扩展中工作
- 如何获取XML值,然后使用javascript将它们输出到htm文件中
- 在htm-php页面中打印Javascript函数
- 如何在angular js的ng应用程序中以普通的htm显示标签
- 从 HTM 中设置 JS 函数的变量
- 如果应用程序托管在IIS上,则Javascript window.location.htm不起作用
- 使用window.location.htm和匹配的URL数组(一个用于桌面,一个用于移动)将桌面网站重定向到移动
- 了解document.location.htm何时完成
- 如何在HTM文件中创建与可折叠面板扩展程序等效的扩展程序
- Javascript Bookmarklet-window.location.htm正在将新链接放在当前链接之后
- 为什么设置window.location.htm不会停止脚本执行
- 使用MVC2/view Studio 2008下的默认htm页面在IE8中最大化屏幕大小
- 需要函数对生成的<李>在htm页中
- 区别黑白保存具有.html扩展名和.htm扩展名的文件
- 如何使用 JavaScript automator (JAX) for Mac yosemite 获取网页的原始 HTM
- JavaScript 中的.htm文件将不会显示正确的颜色
- 将.htm文件名写入HTML格式的文件内容中
- document.location.htm在IE中不起作用
- 使用.htm中的javascript读取/写入csv文件
- windows.location.htm更改导致POST,应为GET