AS3 的正则又有一些不一样的用法

本文详细介绍了AS3中的正则表达式类及其应用,包括如何封装正则表达式以检查文本是否为有效的邮箱地址,以及如何使用正则表达式提取特定文本内容。此外,还提供了一个AS3的字符串工具类示例,该类包含用于处理字符串的正则表达式方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AS3代码:

/*   
* 极酷播放器提示:去除字符串前面的空格和跳格符   
*/*/   
var src:String=" Hello! ";   
trace("\""+src+"\""); //原文本   
trace("\""+src.replace(/^\s*/g,"")+"\""); //去掉前面的空格   
trace("\""+src.replace(/\s*$/g,"")+"\""); //去掉后面的空格  
//由于个人习惯的原因, 我对AS3的正则式进行了一些封装, 封装之后, 由Regex, RegexOptions, 

//Match和MatchCollection四个类组成, 以下的代码中都用到了这几个类比如检查用户输入

//的一个文本是否是一个合法的邮箱地址, 可以使用下面的正则式进行检查:  
 
/*   
* 极酷播放器提示:检查文本是否是一个邮箱地址   
*/   
var regex:Regex=new Regex("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$");   
var email1:String="thor.net@gmail.com";   
var email2:String="thor.net@gmail_com";   
 
trace("\""+email1+"\""+(regex.isMatch(email1)?"是":"不是")+"邮箱地址");   
trace("\""+email2+"\""+(regex.isMatch(email2)?"是":"不是")+"邮箱地址");   
正则式还可以用于提取一段文本中特定的内容, 例如以下代码:  
 
/*   
* 极酷播放器提示:提取文本中的内容   
*/   
var srcText:String="name:thor,birthday:1979-10-31";   
regex=new Regex("name:(?P<name>(\\w+))",RegexOptions.IGNORECASE);//忽略大小写   
var match:Match=regex.getMatch(srcText);   
var text:String=match.result("hello, ${name} ^_^");   
trace(text);  
 


本人看了上面代码,感觉不想as3,因为as3里的正则表达式类是:RegexExp,而不是Regex,

上面的代码中,出现:Regex、Match、MatchCollection、RegexOptions.IGNORECASE;等,都是C#的系统正则表达式相关:类名;

感觉是下面原文的作者,写错标题了吧?


看来,得自己重新看看as3的手册,重新弄个AS3的正则处理;

不同语言的一些封装还来还是有区别的;


原文:http://www.cuplayer.com/player/PlayerCodeAs/2012/0928466.html


本人将其写成原来AS3的工具类:

/*****************************************************
 *  
 *  The Initial Developer of the Original Code is Jave.Lin(afeng)
 *  
 *  StringUtil.as
 *  Create By Jave.Lin(afeng)
 *  2012-11-20 下午4:21:13
 *  
 *****************************************************/
package cn.taole.webgame.jhm.common.util
{
	/**
	 *  字符串工具类
	 * @author Jave.Lin(afeng)
	 **/
	public class StringUtil
	{
		public static function isMail(content:String):Boolean{
			var re:RegExp=new RegExp("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$");
			var arr:Array=content.match(re);
			return (arr &&arr.length>0);
		}
		
		public static function trim(content:String):String{
//			var sidx:int=0;
//			var eidx:int=0;
//			var i:int=0;
//			var c:String;
//			for(; i < content.length; i++){
//				c=content.charAt(i);
//				if(c==" " || c=="\t" || c=="\r" || c=="\n"){
//					
//				}else{
//					sidx=i;
//					break;
//				}
//			}
//			
//			for (i = content.length-1; i > 0; i--){
//				c=content.charAt(i);
//				if(c==" " || c=="\t" || c=="\r" || c=="\n"){
//
//				}else{
//					eidx=i;
//					break;
//				}
//			}
//			
//			return content.substring(sidx,eidx+1);
			
			content=content.replace(/^\s*/g,""); //去掉前面的空格   
			content=content.replace(/\s*$/g,""); //去掉后面的空格  
			return content;
		}
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值