您当前的位置: 首页 > 

Jave.Lin

暂无认证

  • 1浏览

    0关注

    704博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

Jave.Lin 发布时间:2012-11-20 16:57:26 ,浏览量:1

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(\\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;
		}
	}
}

关注
打赏
1664331872
查看更多评论
立即登录/注册

微信扫码登录

0.0372s