(来自帮助文档)
replace(pattern:*, repl:Object):String
对字符串匹配指定模式并返回一个新字符串,其中的第一个模式匹配项被替换为 repl 所指定的内容。
相对于字符串匹配指定的 pattern 并返回一个新字符串,其中的第一个 pattern 匹配项被替换为 repl 所指定的内容。 pattern 参数可以是字符串或正则表达式。 repl 参数可以是字符串或函数;如果是函数,将插入由该函数返回的字符串以替换匹配项。 未修改原始字符串。
指定一个函数作为 repl 时,replace() 方法将以下参数传递给该函数:
• 字符串的匹配部分。
• 任何捕获到的括号组匹配项都将作为下一组参数提供。 按这种方式传递的参数数目因括号匹配项的数目而异。 您可以通过检查函数代码中的 arguments.length - 3 来确定括号匹配项的数目。
• 字符串中匹配开始的索引位置。
• 完整的字符串。
例如,请看以下例子一:
第一次,模式与子字符串 "abc12" 匹配,并将以下参数列表传递给该函数:
{"abc12", "abc", "12", 0, "abc12 def34"}
第二次,模式与子字符串 "def23" 匹配,并将以下参数列表传递给该函数:
{"def34", "def", "34", 6, "abc123 def34"}
例子二
replace(pattern:*, repl:Object):String
对字符串匹配指定模式并返回一个新字符串,其中的第一个模式匹配项被替换为 repl 所指定的内容。
相对于字符串匹配指定的 pattern 并返回一个新字符串,其中的第一个 pattern 匹配项被替换为 repl 所指定的内容。 pattern 参数可以是字符串或正则表达式。 repl 参数可以是字符串或函数;如果是函数,将插入由该函数返回的字符串以替换匹配项。 未修改原始字符串。
指定一个函数作为 repl 时,replace() 方法将以下参数传递给该函数:
• 字符串的匹配部分。
• 任何捕获到的括号组匹配项都将作为下一组参数提供。 按这种方式传递的参数数目因括号匹配项的数目而异。 您可以通过检查函数代码中的 arguments.length - 3 来确定括号匹配项的数目。
• 字符串中匹配开始的索引位置。
• 完整的字符串。
例如,请看以下例子一:
var str1:String = "abc12 def34";
var pattern:RegExp = /([a-z]+)([0-9]+)/;//查找由字母和数字组合而成的字符串
var str2:String = str1.replace(pattern, replFN);
trace (str2); // 12abc 34def
function replFN():String {
return arguments[2] + arguments[1];
}
对replace() 方法的调用使用一个函数作为 repl 参数。 匹配两次正则表达式 (/([a-z]([0-9]/g)。
第一次,模式与子字符串 "abc12" 匹配,并将以下参数列表传递给该函数:
{"abc12", "abc", "12", 0, "abc12 def34"}
第二次,模式与子字符串 "def23" 匹配,并将以下参数列表传递给该函数:
{"def34", "def", "34", 6, "abc123 def34"}
例子二
var str:String = "Now only $9.95!";
var price:RegExp = /\$([\d,]+.\d+)+/i;//查找美元
trace(str.replace(price, usdToEuro));
function usdToEuro(matchedSubstring:String,
capturedMatch1:String,
index:int,
str:String):String
{
var usd:String = capturedMatch1;
usd = usd.replace(",", "");
var exchangeRate:Number = 0.853690;
var euro:Number = usd * exchangeRate;
const euroSymbol:String = String.fromCharCode(8364);
return euro.toFixed(2) + " " + euroSymbol;
}
//输出:Now only 7.68 €!