Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-替换HTML代码_Javascript_Regex - Fatal编程技术网

Javascript-替换HTML代码

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

我正在尝试替换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属性,这将返回文本等价物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,你是对的。我没有理由直言不讳呃,我们都去过那里=顺便说一下,这些代码叫做实体。顺便说一下,这些代码叫做实体。