s.replace(/&/g,"&")//替换字符串s中的&为&
replace(/ </g,"<")//替换字符串中的<为<
replace(/>/g,">")//替换字符串中的>为>
replace(/([\\\.\*\[\]\(\)\$\^])/g,"\\$1"); 匹配 \ . * [ ] ( ) $ ^ 字符,$1是对匹配的字符的引用。
replace(/ </g,"<")//替换字符串中的<为<
replace(/>/g,">")//替换字符串中的>为>
replace(/([\\\.\*\[\]\(\)\$\^])/g,"\\$1"); 匹配 \ . * [ ] ( ) $ ^ 字符,$1是对匹配的字符的引用。
replace(/ </g,"<")//替换字符串中的 <为<
replace(/>/g,">")//替换字符串中的>为>
replace(/([\\\.\*\[\]\(\)\$\^])/g,"\\$1"); 匹配 \ . * [ ] ( ) $ ^ 字符,$1是对匹配的字符的引用。
replace(/&/g,"&") // 将 & 替换为 &
replace(/</g,"<") // 将 < 替换为 <
replace(/>/g,">") // 将 > 替换为 >
replace(/([\\\.\*\[\]\(\)\$\^])/g,"\\$1") // 将 \ . * [ ] ( ) $ ^ 这些字符转义,即前面加上 \
即 \ 变成 \\
即 . 变成 \.
即 * 变成 \*
即 [ 变成 \[
即 ] 变成 \]
即 ( 变成 \(
即 ) 变成 \)
即 $ 变成 \$
即 ^ 变成 \^即一个字符会被替换为 2 个字符
由于 JS 字符 \ 会被转义为 \\所以你在字符串中的 \ 将是 \\
所以你在字符串中的 \\ 将是 \\\\
所以你在字符串中的 \. 将是 \\.
所以你在字符串中的 \* 将是 \\*
这个如果替换的顺序
replace(/([\\\.\*\[\]\(\)\$\^])/g,"\\$1"); 匹配 \ . * [ ] ( ) $ ^ 字符,$1是对匹配的字符的引用
replace(/>/g,">") // 将 > 替换为 >
replace(/</g,"<") // 将 < 替换为 <
replace(/&/g,"&") // 将 & 替换为 & 以上就是替换顺序与解析
return s.replace(/\\([\\\.\*\[\]\(\)\$\^])/g,"$1").replace(/>/g,">").replace(/</g,"<").replace(/&/g,"&");是否和
s.replace(/&/g,"&").replace(/ </g,"<").replace(/>/g,">").replace(/([\\\.\*\[\]\(\)\$\^])/g,"\\$1"); 的过程是相反的
s.replace(/&/g,"&").replace(/ </g,"<").replace(/>/g,">").replace(/([\\\.\*\[\]\(\)\$\^])/g,"\\$1");替换然后在经过
s.replace(/\\([\\\.\*\[\]\(\)\$\^])/g,"$1").replace(/>/g,">").replace(/</g," <").replace(/&/g,"&"); 能还原吗?