[英]How to escape ",< and all special characters in JavaScript
如何在javaScript中轉義所有特殊字符。
我們正在使用它,但是它不起作用:
<input type = "text" value="' }{ " : ? > < \ ] [ ' ; / . ,">
您只需將"
與"
交換即可。
一個好主意是采用更多HTML實體:
<
替換為<
>
替換為>
<input type = "text" value="' }{ " : ? > < \\ ] [ ' ; / . ,">
通過使用瀏覽器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("' }{ \\" : ? > < \\\\ ] [ ' ; / . ,"))
您試圖將以下內容作為HTML屬性值或JavaScript字符串進行轉義
' }{ " : ? > < \ ] [ ' ; / . ,
<input type="text" value="' }{ " : ? > < \ ] [ ' ; / . ,">
可以通過在value=
之后轉義雙引號來解決
<input type="text" value="' }{ "e; : ? > < \ ] [ ' ; / . ,">
"e;
將呈現為"
字符。
理想情況下,您還應該轉義所有HTML保留字符(>和<分別變為>
和<
)
<input type="text" value="' }{ "e; : ? > < \ ] [ ' ; / . ,">
無論使用單引號定界符(')還是雙引號定界符(“”),字符串' }{ " : ? > < \\ ] [ ' ; / . ,
var str = '\\' }{ " : ? > < \\ ] [ \\' ; / . ,';
雙引號
var str2 = "' }{ \\" : ? > < \\ ] [ ' ; / . ,";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.