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

[AS3]as3下对字符串的正则表达式详细介绍(2)

时间:2014-06-30 14:23酷播
指定一个函数作为 repl 时,replace() 方法将以下参数传递给该函数: 字符串的匹配部分。 任何捕获到的括号组匹配项都将作为下一组参数提供。 按这种方式传递的参数数目因括号匹配项的数目而异。 您可以通过检查函

指定一个函数作为 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"}

返回
String — 结果字符串。 请注意,源字符串保持不变。

 

例子:

/*
String.replace(RegExp,Object);
这个函数指定正则表达式的替换功能
如果RegExp是一个字符串(不包括元符号等特殊符号),Object可以是任何对象,
也可以是由函数返回的对象形式,通常这个数据返回的是字符串,
如果RegExp是一个字符串,那么就是纯替换,首先程序会查找String的RegExp参数

中的数据,之后就用Object来替换。也就是说把RegEx的内容用Object来替换
看看下面的例子
*/
//实例1
var s:String="She sells seashells by the seashore.";
trace("运行前:"+s.replace(/sh/g,"sch"));
//实例2
var s2:String="She sells seashells by the seashore.She is my wife";
trace("运行前:"+s2.replace(/S.e/g,"He"));//使用正则表达式

//运行前:She sells seaschells by the seaschore.
//前:He sells seashells by the seashore.He is my wife

String.seach(pattern:*);

search () 方法

AS3 function search(pattern:*):int

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

搜索指定的 pattern 并返回第一个匹配子字符串的索引。 如果没有匹配的子字符串,该方法返回 -1。

参数
pattern:* — 要匹配的模式,可以为任何类型的对象,但通常是字符串或正则表达式。 如果 pattern 不是正则表达式或字符串,则该方法在执行前会将其转换为字符串。 请注意,如果指定正则表达式,该方法将忽略此正则表达式的全局标志(“g”),并忽略此正则表达式的 lastIndex 属性(并保持其值不变)。 如果传递未定义的值(或未传递值),则该方法返回 -1。

返回
int — 第一个匹配子字符串的索引,如果没有匹配项,则为 -1。 请注意,字符串的索引从零开始;字符串的第一个字符位于索引 0 处,最后一个字符位于 string.length - 1 处。

 

例子:

/*
String.search(正则表达式:字符串);//返回第一个匹配子字符串的索引
String.split(正则表达式:字符串);//将String字符串进行拆分,由里面的参数位置来拆分,
但不包括里面的参数。

*/
var ss:String="here is my home,she is my wife.";
trace("运行后="+ss.search(/my/g));//返回第一个与'my'匹配的ss索引
//运行后=8

String.split(delimiter:*, limit:Number = 0x7fffffff):Array;

将 String 对象拆分为一个子字符串数组,方法是在所有出现指定 delimiter 参数的位置进行拆分。

如果 delimiter 参数是正则表达式,即使向后跟踪可以找到与该位置匹配的非空子字符串,也仅考虑字符串给定位置处的第一个匹配项。 例如:

var str:String = "ab"; var results:Array = str.split(/a*?/); // results == ["","b"] results = str.split(/a*/); // results == ["","b"].)

如果 delimiter 参数是包含分组圆括号的正则表达式,则每次匹配 delimiter 时,会将分组圆括号的结果(包括任何未定义的结果)连接到输出数组中。 例如

var str:String = "Thi5 is a tricky-66 example."; var re:RegExp = /(\d+)/; var results:Array = str.split(re); // results == ["Thi","5"," is a tricky-","66"," example."]

如果指定 limit 参数,返回的数组中具有的元素数将不多于指定数目。

如果 delimiter 是空字符串、空正则表达式或者可以匹配空字符串的正则表达式,则字符串中的每一个字符都将输出为数组中的一个元素。

如果未定义 delimiter 参数,则会将整个字符串放入返回的数组的第一个元素中。

参数
delimiter:* — 指定拆分此字符串的位置的模式。 此模式可以是任何类型的对象,但通常为字符串或正则表达式。 如果delimiter 不是正则表达式或字符串,则该方法在执行前会将其转换为字符串。

limit:Number (default = 0x7fffffff) — 要放入数组中的最大项数。 默认为允许的最大值。

返回

Array — 一个子字符串的数组

例子:



String.search(正则表达式:字符串);//返回第一个匹配子字符串的索引
String.split(正则表达式:字符串);//将String字符串进行拆分,由里面的参数位置来拆分,
但不包括里面的参数。

*/
var ss:String="here is my home,she is my wife.";
trace("运行后="+ss.search(/my/g));//返回第一个与'my'匹配的ss索引
trace(ss.split(/is/g,2));

//运行后=8
//here , my home,she //split,拆分,例如有一句话:你是那个谁是不是。假如从'谁'这个字来拆分,得:你是那个,是不是。
 

热门文章推荐

请稍候...

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

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