用字母替换字符串中的单词

Replacing words in a String by letters

我有这个字符串:

var str:String = mySharedObject.data.theDate; 

其中 mySharedObject.data.theDate 可以包含单词 January、February、March..etc(取决于用户单击的按钮)。

是否可以告诉我的代码将 "January" 替换为“1”(如果 mySharedObject 包含单词 January),"February" 替换为“2”...等等?

最基本的方法是使用字符串的 replace 方法。

str = str.replace("January","1");

现在,您可以重复或串联所有 12 个月(例如 str = str.replace("January","1").replace("February","2").replace("March","3")..etc),或者您可以循环进行:

//have an array of all 12 months in order
var months:Array = ["January","February","March","April","May"]; //etc

//create a function to replace all months with the corresponding number
function swapMonthForNumber(str:String):String {
    //do the same line of code for every item in the array
    for(var i:int=0;i<months.length;i++){
        //i is the item, which is 0 based, so we have to add 1 to make the right month number
        str = str.replace(months[i],String(i+1));
    }
    //return the updated string
    return str;
}

var str:String = swapMonthForNumber(mySharedObject.data.theDate); 

现在,还有一些其他方法可以替换 ActionScript 中的字符串,它们在复杂性和性能方面都略有不同,但如果您刚刚开始,我会坚持使用 replace 方法.

replace 唯一可能的警告是它只替换单词的第一个实例,因此如果您的字符串是 "January January January",它会显示为 "1 January January"