Javascript - 替换HTML代码

时间:2012-08-27 15:25:50

标签: javascript regex

我正在尝试替换JavaScript中的一些代码。不知何故,这不起作用。

var name = "check & ' \"";
alert(name);
alert(name.replace(/["]/g, "\""));
alert(name.replace(/[\]/g, "\"));       

我做错了什么?

2 个答案:

答案 0 :(得分:3)

不要使用正则表达式,只需解析它:

 var d = document.createElement('div');
 d.innerHTML = "check & ' \"";
 console.log(d.innerText);//all done

创建一个元素(在内存中,它不会显示),并使用innerText属性,这将返回等效的文本(即将所有html实体转换为各自的字符)。

read this

作为旁注:/["]/g永远不会起作用的原因是因为你正在创建一个字符类/组:它将匹配组中的任何1个字符,而不是整个字符串:

d.innerHTML.replace(/["]/g,'@');//"check @amp@ ' \""
d.innerHTML.replace(/(")/g,'@');//"check & ' \""

答案 1 :(得分:2)

在正则表达式中,[]表示"以下任何字符"。因此,/[\]/g将匹配\

在没有[]的情况下试用。

var name = "check & ' \"";
alert(name);
alert(name.replace(/"/g, "\""));
alert(name.replace(/\/g, "\""));