为什么此代码无法替换特殊字符:
var strOutput = 'aaa { " } ';
strOutput.replace(/{/g, "");
strOutput.replace(/}/g, "");
strOutput.replace(/"/g, "");
document.write( strOutput );
需要改变什么?
为什么此代码无法替换特殊字符:
var strOutput = 'aaa { " } ';
strOutput.replace(/{/g, "");
strOutput.replace(/}/g, "");
strOutput.replace(/"/g, "");
document.write( strOutput );
需要改变什么?
replace
不改变它的参数,它返回一个新的字符串。您必须在某处分配结果,否则它会丢失:
var strOutput = 'aaa { " } ';
strOutput = strOutput.replace(/{/g, "");
strOutput = strOutput.replace(/}/g, "");
strOutput = strOutput.replace(/"/g, "");
document.write( strOutput );
[...]
或者只是在你的正则表达式中使用一个字符类:
var strOutput = 'aaa { " } ';
strOutput = strOutput.replace(/[{}"]/g, "");
您将需要从替换中捕获结果。(你可以链接你的替换。)
var strOutput = 'aaa { " } ';
strOutput = strOutput.replace(/{/g, "").replace(/}/g, "").replace(/"/g, "");
document.write( strOutput );
顺便说一句,你可以让它像这样简单:
strOutput = strOutput..replace(/({|"|})/g, "");
截至@Alnitak 评论:
strOutput = strOutput..replace(/[{}"]/g, "");
根据其他答案,您需要使用..replace
但是你不需要三个电话,你应该使用:
strOutput = strOutput.replace(/[{}"]/g, '');
其中[...]
是一个字符类,它与该集中的任何单个字符匹配。在这样一个类中,唯一需要转义的字符是^-]\