Javascript 替换字符串中的字符数组
我正在寻找一个函数,它可以用任何开始字符和结束字符替换所有字符 我知道我可以使用正则表达式表示法:Javascript 替换字符串中的字符数组,javascript,character-encoding,Javascript,Character Encoding,我正在寻找一个函数,它可以用任何开始字符和结束字符替换所有字符 我知道我可以使用正则表达式表示法: string=string.replace(/a/g,"b"); 但是,因为搜索的字符在正则表达式中,所以我有时需要转义该字符,有时则不需要,如果我想对完整的字符列表执行此操作,这很烦人 convertEncoding= function(string) { var charMap= {'"':""",'&':"&",...} for (s
string=string.replace(/a/g,"b");
但是,因为搜索的字符在正则表达式中,所以我有时需要转义该字符,有时则不需要,如果我想对完整的字符列表执行此操作,这很烦人
convertEncoding= function(string) {
var charMap= {'"':""",'&':"&",...}
for (startChar in charMap) {
endChar=charMap[startChar];
string= string.replaceAll(startChar,endChar);
}
}
它们是否是编写函数replaceAll的好方法,而不必执行for循环并使用
String.replace()
(例如天真的方法)?您可以在字符串中使用转义RegExp特殊字符,如以下所述:
然后可以使用regexp全局替换
function escapeRegExp(str) {
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
for (startChar in charMap) {
endChar=charMap[startChar];
result = string.replace(RegExp(escapeRegExp(startChar), 'g'), endChar);
}
好的,实际上我觉得这会有点慢,我宁愿自己写正则表达式。@edi9999 1)我怀疑这会很慢-除非你转换数百万个编码,否则至少人类不会注意到任何东西2)你只能在启动时转义字符串一次,而不是每次转换编码,所以启动时只会稍微慢一点3)自己做会花费更多的时间来开发(写、测试、调试、维护、读取)好的,我已经测试过了,这是真的