Javascript-替换HTML代码
我正在尝试替换JavaScript中的一些代码。不知怎么的,这是行不通的Javascript-替换HTML代码,javascript,regex,Javascript,Regex,我正在尝试替换JavaScript中的一些代码。不知怎么的,这是行不通的 var name = "check & ' \""; alert(name); alert(name.replace(/["]/g, "\"")); alert(name.replace(/[\]/g, "\")); 我做错了什么?不要使用正则表达式,只需解析它: var d = document.createElement('d
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属性,这将返回文本等价物ie将所有html实体转换为各自的字符
作为旁注:/[]/g永远不会工作的原因是因为您正在创建一个字符类/组:它将匹配组中的任何一个字符,而不是整个字符串:
d.innerHTML.replace(/["]/g,'@');//"check @amp@ ' \""
d.innerHTML.replace(/(")/g,'@');//"check & ' \""
不要使用正则表达式,只需解析它:
var d = document.createElement('div');
d.innerHTML = "check & ' \"";
console.log(d.innerText);//all done
在内存中创建一个元素,它不会显示,并使用innerText属性,这将返回文本等价物ie将所有html实体转换为各自的字符
作为旁注:/[]/g永远不会工作的原因是因为您正在创建一个字符类/组:它将匹配组中的任何一个字符,而不是整个字符串:
d.innerHTML.replace(/["]/g,'@');//"check @amp@ ' \""
d.innerHTML.replace(/(")/g,'@');//"check & ' \""
在正则表达式中,[]表示以下任何字符。因此,/[&92;]/g将匹配a&,a,a 9,a 2或a
不带[]试试看
在正则表达式中,[]表示以下任何字符。因此,/[&92;]/g将匹配a&,a,a 9,a 2或a
不带[]试试看
@大卫托马斯:NP,你是对的。我没有理由直言不讳呃,我们都去过那里=@大卫托马斯:NP,你是对的。我没有理由直言不讳呃,我们都去过那里=顺便说一下,这些代码叫做实体。顺便说一下,这些代码叫做实体。