Actionscript 3 替换AS3中最后出现的字符串的最有效方法是什么

Actionscript 3 替换AS3中最后出现的字符串的最有效方法是什么,actionscript-3,Actionscript 3,String.replace替换字符串中第一个出现的字符串,但我想替换字符串中最后一个出现的字符串。有简单的方法吗?您可以使用该函数确定要替换的字符串的位置,然后在发生之前和之后添加子字符串以获得所需的结果。建议的函数中有错误。。。下面是更正的一个: public static function replaceLastOccurrence(str:String, find:String, replace:String):String { var pre:String = str.subs

String.replace替换字符串中第一个出现的字符串,但我想替换字符串中最后一个出现的字符串。有简单的方法吗?

您可以使用该函数确定要替换的字符串的位置,然后在发生之前和之后添加子字符串以获得所需的结果。

建议的函数中有错误。。。下面是更正的一个:

public static function replaceLastOccurrence(str:String, find:String, replace:String):String {
    var pre:String = str.substr(0, str.lastIndexOf(find));
    var post:String = str.substr(str.lastIndexOf(find)+find.length, str.length); 

    return pre + replace + post;
}

我会首先检查是否有发生:

public static function replaceLastOccurrence(str:String, find:String, replace:String):String  
{
    if (str.lastIndexOf(find) != -1)
    {
        var pre:String = str.substr(0, str.lastIndexOf(find));
        var post:String = str.substr(str.lastIndexOf(find) + find.length, str.length); 
        return pre + replace + post;
    }
    else
    {
        return str;
    }
}

否则,如果没有发生,它将弄乱字符串的结尾。

好吧,这就是我拥有的:
私有函数replaceLastOccurrence($str:string,$find:string,$replace:string):string{var pre:string=$str.substr(0,$str.lastIndexOf($find)-1),post:string=$str.substr($str.lastIndexOf)($find)+2,$str.length);return pre+$replace+post;}
它看起来不太优雅。是的。但由于没有“replaceLast”,我认为您将不得不接受一个不那么优雅的解决方案。此外,如果您将该助手函数公开和/或静态,如果您使用它,您将再也看不到它的代码;)建议的函数中存在错误。。。下面是正确的一个:公共静态函数replaceLastOccurrence(str:String,find:String,replace:String):String{var pre:String=str.substr(0,str.lastIndexOf(find)-1);var post:String=str.substr(str.lastIndexOf(find)+find.length,str.length);返回pre+replace+post;}