修改htmlEntities流行的javascript函数以保留"<br>"子字符串
Modify htmlEntities popular javascript function to preserve "<br>" substrings
我的问题是基于这个SO问题的好答案。如何用JavaScript编码字符串以在HTML中显示?
function htmlEntities(str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
}
我需要相同的,但应该在字符串中保留每个"<br>"
子字符串。然后寻找修改函数CCD_ 2的最佳方式。
谢谢。
有比我的解决方案更聪明的吗?
function htmlEntitiesModified(str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace('<br>', '<br>');
}
//.replace('<br>', '<br>') was added to the end.
请投票,如果这个解决方案是优雅和良好的,所以我知道。非常感谢。
尝试
function htmlEntities(str) {
return String(str)
.replace(/&/g, '&')
.replace(/<[^<br]/g, '<') // negate `<br`
.replace(/[^br+| '/>]>/g, '>') // negate `br>` or `br />`
.replace(/"/g, '"');
}
var unsafestring = "<br><oohlook&atme><br><br />string";
function htmlEntities(str) {
return String(str).replace(/&/g, '&').replace(/<[^<br]/g, '<').replace(/[^br+| '/>]>/g, '>').replace(/"/g, '"');
}
document.body.innerText = htmlEntities(unsafestring);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
我很惊讶没有人回答这个问题。你可以直接使用浏览器自己为你进行转义。没有任何regex比让浏览器做它最擅长的事情,处理HTML更好或更安全。
function escapeHTML(str){
var p = document.createElement("p");
p.appendChild(document.createTextNode(str));
return p.innerHTML;
}
或使用Option()构造函数的简短替代
function escapeHTML(str){
return new Option(str).innerHTML;
}
相关文章:
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 内联javascript与"<脚本>"字符串错误地关闭了脚本标记
- "未捕获类型错误/丢弃意外“;因为一句台词而出现?(HTML w/<脚本>)
- 在<script src=“"></脚本>标签
- 未知”<#"构造
- "未捕获的语法错误:意外的标记<"当尝试使用谷歌'核心报告API
- 语法错误:"意外的标记<"在Web控制台中
- 如何使用Javascript获取当前页面URL,并在<a href="[the_URL]”>
- 显示“<script src='some.js'></脚本>"在Html文档中
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- JSP<a href="">无法保存常规语句
- 我没有'我不明白“;temp<<=y"在这个javascript程序中执行
- "<<"javascript中的运算符
- 在MySQL中存储映像路径与使用<img src=“"onError=“">
- a4j:命令按钮不允许"<"在渲染中
- Knockout.js"<!--ko if:-->"导致分离DOM元素的块
- 修改htmlEntities流行的javascript函数以保留"<br>"子字符串
- 如何防止丑女出逃"</脚本“;在字符串中