簡體   English   中英

如何在JavaScript中轉義“,<和所有特殊字符

[英]How to escape ",< and all special characters in JavaScript

如何在javaScript中轉義所有特殊字符。

我們正在使用它,但是它不起作用:

<input type = "text" value="' }{ " : ? > < \ ] [ ' ; / . ,">

您只需將"&quot;交換即可。

一個好主意是采用更多HTML實體:

  • <替換為&lt;
  • >替換為&gt;

 <input type = "text" value="' }{ &quot; : ? &gt; &lt; \\ ] [ ' ; / . ,"> 

通過使用瀏覽器DOM,您可以讓瀏覽器為您完成工作。

創建一個HTML節點,在其上附加一個文本節點,然后將要轉義的html代碼放入該文本節點中。 僅對於雙引號,您可能需要對它們進行替換以&quot; 和單引號&#39;

 function htmlspecialchars(str) { var div = document.createElement('div'); var text = document.createTextNode(str); div.appendChild(text); return div.innerHTML.replace(/"/g,'&quot;').replace(/'/g,'&#39;'); } console.log(htmlspecialchars("<html>")); console.log(htmlspecialchars("<!DOCTYPE=\\"RUBBISH\\">")); console.log(htmlspecialchars("' }{ \\" : ? > < \\\\ ] [ ' ; / . ,")) 

您試圖將以下內容作為HTML屬性值或JavaScript字符串進行轉義

' }{ " : ? > < \ ] [ ' ; / . ,

作為HTML屬性值,以下內容

<input type="text" value="' }{ " : ? > < \ ] [ ' ; / . ,">

可以通過在value=之后轉義雙引號來解決

<input type="text" value="' }{ &quote; : ? > < \ ] [ ' ; / . ,">

&quote; 將呈現為"字符。

理想情況下,您還應該轉義所有HTML保留字符(>和<分別變為&gt;&lt;

<input type="text" value="' }{ &quote; : ? &gt; &lt; \ ] [ ' ; / . ,">

作為JavaScript字符串

無論使用單引號定界符(')還是雙引號定界符(“”),字符串' }{ " : ? > < \\ ] [ ' ; / . ,

單引號
 var str = '\\' }{ " : ? > < \\ ] [ \\' ; / . ,'; 
雙引號
 var str2 = "' }{ \\" : ? > < \\ ] [ ' ; / . ,"; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM