1. 程式人生 > >解決replace()方法只能替換第一個字元

解決replace()方法只能替換第一個字元

問題描述:Flex/Flash中字串有replace()方法,可以方便的替換字串,比如我想把一個字串裡的”:”都替換成”_”

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

結果會發現結果是”18_18:20”,即只有第一個匹配的字元被替換了。而AS3裡面有沒有replaceAll()這個方法。

解決辦法1:replace()方法使用正則表示式替換

var fileName:String = "18:18:20";
//正則表示式中設定了 g(全域性)標誌,表示替換全部,如是.之類用\.來
fileName = fileName.replace(/:/g,"_");

解決辦法2:使用split()把字串拆分成陣列,再用join()拼接會字串

var fileName:String = "18:18:20";
fileName = fileName.split(":").join("_");