今天试写一个简单的javascript字串反转时,
发现单纯使用replace
的话,只会取代字串中的第一个值,
程式码如下:
var str = "ABCD";var result = [];for (var i = str.length - 1; i >= 0; i--){ result.push(str[i]);}console.log(result.toString().replace(",",""));
执行结果:"DC,B,A"
处理这个问题有两种做法,第一种是针对需要取代的字元使用正规表达式:
使用斜线包住需要取代的字串,并在最后加上g
代表指定全域:/,/g
用这样的表达式去指定程式调整字串中所有需要取代的部分。
var str = "ABCD";var result = [];for (var i = str.length - 1; i >= 0; i--){ result.push(str[i]);}console.log(result.toString().replace(/,/g,""));
第二种是改为使用replaceAll
,这样就可以很直观的把所有指定字元都取代掉了。
var str = "ABCD";var result = [];for (var i = str.length - 1; i >= 0; i--){ result.push(str[i]);}console.log(result.toString().replaceAll(",",""));