我试图用JavaScript中的正则表达式替换文件名中的非法字符,但它在IE 11中以'正则表达式中的语法错误'持续下降。在Chrome和Edge中,相同的代码工作正常。JavaScript正则表达式在IE中失败,但在Chrome和Edge中工作
String.prototype.replaceAll = function (search, replacement) {
var target = this;
return target.replace(search, replacement);
};
var filename = 'test+&+this+again.2016.txt';
filename = filename.replaceAll(new RegExp(/[^a-zA-Z0-9_\-&.]+/, 'g'), '_');
希望的输出是
filename = 'test_&_this_again.2016.txt';
任何帮助,将不胜感激。
感谢
旁边的问题:你的'replaceAll'函数的目的是什么,因为它只是调用标准'replace'函数? – sp00m
FWIW:'/ [^ a-zA-Z0-9 _ \ - &。] + /'与'/ [^ \ w \ - &。] + /' –
相同我希望你不要泄露' .replaceAll'到生产代码:-O – andlrc