我有这个as3功能
public static function StringReplaceAll( source:String, find:String, replacement:String ) : String {
return source.split( find ).join( replacement );
}
工作正常:任何想法如何让它不区分大小写? 此致
答案 0 :(得分:19)
只需使用String#replace()功能。
例如:
trace("HELLO there".replace(/e/gi, "a"));
//traces HaLLO thara
replace函数中的第一个参数是正则表达式。您将找到有关他们的信息all over the web。 Grant Skinner提供了一个名为Regexr的方便工具,您可以使用它来测试正则表达式ActionScript风格。
两个正斜杠(/)之间的部分是实际的正则表达式。
请注意,/e/gi
实际上只是new RegExp("e", "gi")
答案 1 :(得分:-1)
快速的方法可以是做两次替换。一个用于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()
答案更清晰。
(但你当然也可以两次使用他的例子)