如何在javaScript中转义所有特殊字符。
我们正在使用它,但它不起作用:
<input type = "text" value="' }{ " : ? > < \ ] [ ' ; / . ,">
答案 0 :(得分:5)
您只需与"
交换"
。
一个好主意是采用更多HTML实体:
<
替换为<
>
替换为>
<input type = "text" value="' }{ " : ? > < \ ] [ ' ; / . ,">
答案 1 :(得分:1)
通过使用浏览器DOM,您可以让浏览器为您完成工作。
创建一个HTML节点,向其附加一个文本节点,并在文本节点中放入您想要转义的html代码。
仅对于双引号,您可能需要将其替换为"
并将单引号替换为'
function htmlspecialchars(str) {
var div = document.createElement('div');
var text = document.createTextNode(str);
div.appendChild(text);
return div.innerHTML.replace(/"/g,'"').replace(/'/g,''');
}
console.log(htmlspecialchars("<html>"));
console.log(htmlspecialchars("<!DOCTYPE=\"RUBBISH\">"));
console.log(htmlspecialchars("' }{ \" : ? > < \\ ] [ ' ; / . ,"))
答案 2 :(得分:0)
您要么尝试将以下内容转义为HTML属性值,要么转换为JavaScript字符串
<input type="text" value="' }{ " : ? > < \ ] [ ' ; / . ,">
value=
可以通过在<input type="text" value="' }{ "e; : ? > < \ ] [ ' ; / . ,">
"e;
"
将呈现为>
字符。
理想情况下,您还应该转义所有HTML保留字符(&gt;和&lt;分别成为<
和<input type="text" value="' }{ "e; : ? > < \ ] [ ' ; / . ,">
)
' }{ " : ? > < \ ] [ ' ; / . ,
无论您使用单引号分隔符(&#39;)还是双引号分隔符(&#34;&#34;)
,字符串var str = '\' }{ " : ? > < \ ] [ \' ; / . ,';
必须以不同方式进行转义
单引号
var str2 = "' }{ \" : ? > < \ ] [ ' ; / . ,";
双引号
{{1}}