爲什麼這個代碼不能替換特殊字符:?的Javascript替換特殊字符{}「
var strOutput = 'aaa { " } ';
strOutput.replace(/{/g, "");
strOutput.replace(/}/g, "");
strOutput.replace(/"/g, "");
document.write(strOutput);
什麼需要改變
爲什麼這個代碼不能替換特殊字符:?的Javascript替換特殊字符{}「
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);
順便說一句,你可以MAK Ë它這樣簡單:
strOutput = strOutput..replace(/({|"|})/g, "");
由於@Alnitak評論:
strOutput = strOutput..replace(/[{}"]/g, "");
每其他的答案,你需要使用的.replace
的結果。
但是你並不需要三個電話,你應該使用:
strOutput = strOutput.replace(/[{}"]/g, '');
其中[...]
是字符類它匹配該組中的任何個性。在這樣的一類中,唯一需要轉義的字符是^-]\
很好的答案。令我驚訝的是,/ {/是JavaScript中的合法RE。 – PhiLho
謝謝我認爲被替換的字符串被放回給調用者。我可以在3分鐘內接受... – Patrick
@PhiLho:http://stackoverflow.com/q/12952886/989121 – georg