我有這個AS3功能AS3的replaceAll不敏感
public static function StringReplaceAll(source:String, find:String, replacement:String) : String {
return source.split(find).join(replacement);
}
正常工作:任何想法如何使它情況下insenstive? Regards
我有這個AS3功能AS3的replaceAll不敏感
public static function StringReplaceAll(source:String, find:String, replacement:String) : String {
return source.split(find).join(replacement);
}
正常工作:任何想法如何使它情況下insenstive? Regards
只需使用String#replace()函數。
例如:
trace("HELLO there".replace(/e/gi, "a"));
//traces HaLLO thara
在替換功能的第一個參數是一個正則表達式。你會發現他們的信息all over the web。 Grant Skinner提供的這個方便的工具叫做Regexr,您可以使用它來測試正則表達式的ActionScript風格。
兩個正斜槓(/)之間的部分是實際的正則表達式。
注意/e/gi
實際上只是爲new RegExp("e", "gi")
速記一個快速的方法可能是做兩個替代品。一個用於lowerCase,另一個用於upperCase。它會是這個樣子:
public static function StringReplaceAll(source:String, find:String, replacement:String) : String
{
var replacedLowerCase:String = StringReplace(source, find.toLowerCase(), replacement.toLowerCase());
return StringReplace(replacedLowerCase, find.toUpperCase(), replacement.toUpperCase());
}
private static function StringReplace(source:String, find:String, replacement:String) : String
{
return source.split(find).join(replacement);
}
因此,在這種情況下,你會保持你的find
完好即的情況下:
trace(StringReplaceAll('HELLO there', 'e', 'a'));
// traces HALLO thara
如果您不希望保留的情況下完整@ RIAstar的String.replace()
答案更清潔。 (但你當然也可以使用他的例子兩次爲此事)
+1還要注意,拆分功能也可以採取RegEx爲第一個參數,但替換功能顯然是要走的路 – OXMO456
我只有upvoted因爲你解釋了你的RegEx。 –