解决replace方法只能替换第一个字符

时间:2025-02-14 10:25:49

问题描述:Flex/Flash中字符串有replace()方法,可以方便的替换字符串,比如我想把一个字符串里的”:”都替换成”_”

var fileName:String = "18:18:20";
fileName = (":","_");

结果会发现结果是”18_18:20”,即只有第一个匹配的字符被替换了。而AS3里面有没有replaceAll()这个方法。

解决办法1:replace()方法使用正则表达式替换
var fileName:String = "18:18:20";
//正则表达式中设置了 g(全局)标志,表示替换全部,如是.之类用\.来
fileName = (/:/g,"_");
解决办法2:使用split()把字符串拆分成数组,再用join()拼接会字符串
var fileName:String = "18:18:20";
fileName = (":").join("_");