[AS3]as3.0正则表达式replace()用法实例
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;//CuPlayer.com查找美元
- trace(str.replace(price, usdToEuro));
- function usdToEuro(matchedSubstring:String,
- capturedMatch1:String,
- index:int,
- str:String):String
- {
- var usd:String = capturedMatch1;
- usdusd = usd.replace(",", "");
- var exchangeRate:Number = 0.853690;
- var euro:Number = usd * exchangeRate;
- const euroSymbol:String = String.fromCharCode(8364);
- return euro.toFixed(2) + " " + euroSymbol;
- }
- //输出:CuPlayer.com Now only 7.68 €!
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例