·您当前的位置:主页 > 技术教程 > AS2与AS3技术 >

[AS3]as3.0正则表达式replace()用法实例

时间:2014-01-03 11:30zpointer.iteye.com
[AS3]as3.0正则表达式replace()用法实例,对字符串匹配指定模式并返回一个新字符串,其中的第一个模式匹配项被替换为 repl 所指定的内容

replace(pattern:*, repl:Object):String
对字符串匹配指定模式并返回一个新字符串,其中的第一个模式匹配项被替换为 repl 所指定的内容。
相对于字符串匹配指定的 pattern 并返回一个新字符串,其中的第一个 pattern 匹配项被替换为 repl 所指定的内容。 pattern 参数可以是字符串或正则表达式。 repl 参数可以是字符串或函数;如果是函数,将插入由该函数返回的字符串以替换匹配项。 未修改原始字符串。
指定一个函数作为 repl 时,replace() 方法将以下参数传递给该函数:
• 字符串的匹配部分。
• 任何捕获到的括号组匹配项都将作为下一组参数提供。 按这种方式传递的参数数目因括号匹配项的数目而异。 您可以通过检查函数代码中的 arguments.length - 3 来确定括号匹配项的数目。
• 字符串中匹配开始的索引位置。
• 完整的字符串。
例如,请看以下例子一:

  1. var str1:String = "abc12 def34"
  2.  var pattern:RegExp = /([a-z]+)([0-9]+)/;//查找由字母和数字组合而成的字符串 
  3.  var str2:String = str1.replace(pattern, replFN); 
  4.  trace (str2);   // 12abc 34def 
  5.   
  6.  function replFN():String { 
  7.   return arguments[2] + arguments[1]; 
  8.  } 

对replace() 方法的调用使用一个函数作为 repl 参数。 匹配两次正则表达式 (/([a-z]([0-9]/g)。
第一次,模式与子字符串 "abc12" 匹配,并将以下参数列表传递给该函数:
{"abc12", "abc", "12", 0, "abc12 def34"}
第二次,模式与子字符串 "def23" 匹配,并将以下参数列表传递给该函数:
{"def34", "def", "34", 6, "abc123 def34"}

  1. var str:String = "Now only $9.95!"
  2. var price:RegExp = /\$([\d,]+.\d+)+/i;//CuPlayer.com查找美元 
  3. trace(str.replace(price, usdToEuro)); 
  4.  
  5. function usdToEuro(matchedSubstring:String,  
  6.                                  capturedMatch1:String,  
  7.                                  index:int,  
  8.                                  str:String):String 
  9.     var usd:String = capturedMatch1
  10.     usdusd = usd.replace(",", ""); 
  11.     var exchangeRate:Number = 0.853690; 
  12.     var euro:Number = usd * exchangeRate; 
  13.     const euroSymbol:String = String.fromCharCode(8364); 
  14.     return euro.toFixed(2) + " " + euroSymbol; 
  15. //输出:CuPlayer.com Now only 7.68 €! 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器