我正在尝试替换 JavaScript 中的一些代码。不知何故,这行不通。
var name = "check & ' \"";
alert(name);
alert(name.replace(/["]/g, "\""));
alert(name.replace(/[\]/g, "\"));
我究竟做错了什么?
我正在尝试替换 JavaScript 中的一些代码。不知何故,这行不通。
var name = "check & ' \"";
alert(name);
alert(name.replace(/["]/g, "\""));
alert(name.replace(/[\]/g, "\"));
我究竟做错了什么?
不要使用正则表达式,只需解析它:
var d = document.createElement('div');
d.innerHTML = "check & ' \"";
console.log(d.innerText);//all done
创建一个元素(在内存中,它不会显示),并使用该innerText
属性,这将返回等效的文本(即将所有 html 实体转换为它们各自的字符)。
作为旁注:/["]/g
永远不会工作的原因是因为您正在创建一个字符类/组:它将匹配组的任何 1 个字符,而不是整个字符串:
d.innerHTML.replace(/["]/g,'@');//"check @amp@ ' \""
d.innerHTML.replace(/(")/g,'@');//"check & ' \""
在正则表达式中,[]
表示“以下任何字符”。因此,/[\]/g
将匹配 a &
、 a #
、 a 9
、 a2
或 a ;
。
不带[]
.
var name = "check & ' \"";
alert(name);
alert(name.replace(/"/g, "\""));
alert(name.replace(/\/g, "\""));