Javascript替换特殊字符{}“

时间:2012-10-18 10:25:53

标签: javascript regex replace

为什么此代码无法替换特殊字符:

http://jsfiddle.net/TTfzu/26/

var strOutput = 'aaa { " } '; 

strOutput.replace(/{/g, "");
strOutput.replace(/}/g, "");
strOutput.replace(/"/g, "");

document.write( strOutput );

需要改变什么?

3 个答案:

答案 0 :(得分:4)

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, "");

答案 1 :(得分:3)

您需要从替换中捕获结果。 (你可以链接替换。)

var strOutput = 'aaa { " } '; 

strOutput = strOutput.replace(/{/g, "").replace(/}/g, "").replace(/"/g, "");

document.write( strOutput );

顺便说一句,你可以这么简单:

strOutput = strOutput..replace(/({|"|})/g, "");

截至@Alnitak评论:

strOutput = strOutput..replace(/[{}"]/g, "");

答案 2 :(得分:1)

根据其他答案,您需要使用.replace结果

但是你不需要三个电话,你应该使用:

strOutput = strOutput.replace(/[{}"]/g, '');

其中[...]字符类,它匹配该集合中的任何单个字符。在这样的类中,唯一需要转义的字符是^-]\