2014-09-03 115 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;");