2014-09-03 119 views
0

我試圖用JavaScript替換<和> HTML標記符號&gt; & &lt;。我正在使用以下代碼:JavaScript替換不替換第二個<

var sval = val.replace('&', '&amp;'); 
sval = sval.replace("<", "&lt;"); 
sval = sval.replace(">", "&gt;"); 

但是,它僅替換第一個出現的<。以下是該值在斷點處快照: enter image description here

回答

3

嘗試使用正則表達式:

var sval = val.replace(/&/g, '&amp;'); 
sval = sval.replace(/</g, "&lt;"); 
sval = sval.replace(/>/g, "&gt;"); 

g標誌(=全局)告訴替換功能不停止尾部呃第一擊。

2

使用g作爲第三個參數刪除所有次數

var sval = val.replace('&', '&amp;','g') 
       .replace("<", "&lt;",'g') 
       .replace(">", "&gt;",'g'); 
// g represents global match 

Documentation : replace()

1
var sval = val.replace(/&/g, '&amp;').replace(/</g, "&lt;").replace(/>/g, "&gt;");