正则表达式的收集

  1. 正则表达式用于字符串处理,表单验证等场合,实用高效,但是用到的时候总找不到,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。本贴随时会更新。  
  2.    
  3.   匹配中文字符的正则表达式:   [/u4e00-/u9fa5]  
  4.    
  5.   匹配双字节字符(包括汉字在内):[^/x00-/xff]  
  6.    
  7.   应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)  
  8.    
  9.   String.prototype.len=function(){return   this.replace([^/x00-/xff]/g,"aa").length;}  
  10.    
  11.   匹配空行的正则表达式:/n[/s|   ]*/r  
  12.    
  13.   匹配HTML标记的正则表达式:/<(.*)>.*<///1>|<(.*)   //>/    
  14.    
  15.   匹配首尾空格的正则表达式:(^/s*)|(/s*$)  
  16.    
  17.   应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:  
  18.    
  19.   String.prototype.trim   =   function()  
  20.   {  
  21.           return   this.replace(/(^/s*)|(/s*$)/g,   "");  
  22.   }  
  23.    
  24.   利用正则表达式分解和转换IP地址:  
  25.    
  26.   下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:  
  27.    
  28.   function   IP2V(ip)  
  29.   {  
  30.     re=/(/d+)/.(/d+)/.(/d+)/.(/d+)/g     //匹配IP地址的正则表达式  
  31.   if(re.test(ip))  
  32.   {  
  33.   return   RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1  
  34.   }  
  35.   else  
  36.   {  
  37.     throw   new   Error("Not   a   valid   IP   address!")  
  38.   }  
  39.   }  
  40.    
  41.   不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:  
  42.    
  43.   var   ip="10.100.20.168"  
  44.   ip=ip.split(".")  
  45.   alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))  
  46.    
  47.   匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*  
  48.    
  49.   匹配网址URL的正则表达式:http://([/w-]+/.)+[/w-]+(/[/w-   ./?%&=]*)?  
  50.    
  51.   利用正则表达式去除字串中重复的字符的算法程序:[注:此程序不正确,原因见本贴回复]  
  52.    
  53.   var   s="abacabefgeeii"  
  54.   var   s1=s.replace(/(.).*/1/g,"$1")  
  55.   var   re=new   RegExp("["+s1+"]","g")  
  56.   var   s2=s.replace(re,"")    
  57.   alert(s1+s2)     //结果为:abcefgi  
  58.    
  59.   我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法,最终没有找到,这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。  
  60.    
  61.   得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1  
  62.    
  63.   s="http://www.9499.net/page1.htm"  
  64.   s=s.replace(/(.*//){0,}([^/.]+).*/ig,"$2")  
  65.   alert(s)  
  66.    
  67.   利用正则表达式限制网页表单里的文本框输入内容:  
  68.    
  69.   用正则表达式限制只能输入中文:οnkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')"   onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))"  
  70.    
  71.   用正则表达式限制只能输入全角字符:   οnkeyup="value=value.replace(/[^/uFF00-/uFFFF]/g,'')"   onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/uFF00-/uFFFF]/g,''))"  
  72.    
  73.   用正则表达式限制只能输入数字:οnkeyup="value=value.replace(/[^/d]/g,'')   "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"  
  74.    
  75.   用正则表达式限制只能输入数字和英文:οnkeyup="value=value.replace(/[/W]/g,'')   "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"  
  76.    
  77.    
  78.   正则表达式,相关链接    
  79.   http://blog.csdn.net/laily/category/19548.aspx    
  80.   http://blog.csdn.net/laily/archive/2004/06/30/30525.aspx   微软的正则表达式教程(五):选择/编组和后向引用    
  81.    
  82.   http://blog.csdn.net/laily/archive/2004/06/30/30522.aspx   微软的正则表达式教程(四):限定符和定位符    
  83.    
  84.   http://blog.csdn.net/laily/archive/2004/06/30/30517.aspx   微软的正则表达式教程(三):字符匹配    
  85.    
  86.   http://blog.csdn.net/laily/archive/2004/06/30/30514.aspx   微软的正则表达式教程(二):正则表达式语法和优先权顺序    
  87.    
  88.   http://blog.csdn.net/laily/archive/2004/06/30/30511.aspx   微软的正则表达式教程(一):正则表达式简介    
  89.    
  90.   http://blog.csdn.net/laily/archive/2004/06/30/30360.aspx   小程序大作为:高级.找/替换、正则表达式练习器、Javascript脚本程序调试器    
  91.    
  92.   http://blog.csdn.net/laily/archive/2004/06/24/25872.aspx   经典正则表达式    
  93.    
  94.   正则表达式,正规表达式,正则表达式匹配,正则表达式语法,模式匹配,正规表达式匹配   javascript正则表达式   ASP正则表达式   ASP.NET正则表达式   C#正则表达式   JSP正则表达式   PHP正则表达式   VB.NET正则表达式   VBSCript正则表达式编程   delphi正则表达式   jscript    
  95.    
  96.    
  97.   补充:    
  98.   ^/d+$  //匹配非负整数(正整数   +   0)    
  99.   ^[0-9]*[1-9][0-9]*$  //匹配正整数    
  100.   ^((-/d+)|(0+))$  //匹配非正整数(负整数   +   0)    
  101.   ^-[0-9]*[1-9][0-9]*$  //匹配负整数    
  102.   ^-?/d+$    //匹配整数    
  103.   ^/d+(/./d+)?$  //匹配非负浮点数(正浮点数   +   0)    
  104.   ^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$  //匹配正浮点数    
  105.   ^((-/d+(/./d+)?)|(0+(/.0+)?))$  //匹配非正浮点数(负浮点数   +   0)    
  106.   ^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配负浮点数    
  107.   ^(-?/d+)(/./d+)?$  //匹配浮点数    
  108.   ^[A-Za-z]+$  //匹配由26个英文字母组成的字符串    
  109.   ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串    
  110.   ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串    
  111.   ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串    
  112.   ^/w+$  //匹配由数字、26个英文字母或者下划线组成的字符串    
  113.   ^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$    //匹配email地址    
  114.   ^[a-zA-z]+://匹配(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$  //匹配url    
  115.    
  116.   利用正则表达式去除字串中重复的字符的算法程序:    
  117.    
  118.   var   s="abacabefgeeii"    
  119.   var   s1=s.replace(/(.).*/1/g,"$1")    
  120.   var   re=new   RegExp("["+s1+"]","g")    
  121.   var   s2=s.replace(re,"")    
  122.   alert(s1+s2)   //结果为:abcefgi    
  123.   ===============================    
  124.   如果var   s   =   "abacabefggeeii"    
  125.   结果就不对了,结果为:abeicfgg    
  126.   正则表达式的能力有限    
  127.    
  128.   1.确认有效电子邮件格式    
  129.   下面的代码示例使用静态   Regex.IsMatch   方法验证一个字符串是否为有效电子邮件格式。如果字符串包含一个有效的电子邮件地址,则   IsValidEmail   方法返回   true,否则返回   false,但不采取其他任何操作。您可以使用   IsValidEmail,在应用程序将地址存储在数据库中或显示在   ASP.NET   页中之前,筛选出包含无效字符的电子邮件地址。    
  130.    
  131.   [Visual   Basic]    
  132.   Function   IsValidEmail(strIn   As   String)   As   Boolean    
  133.   '   Return   true   if   strIn   is   in   valid   e-mail   format.    
  134.   Return   Regex.IsMatch(strIn,   ("^([/w-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)$")    
  135.   End   Function    
  136.   [C#]    
  137.   bool   IsValidEmail(string   strIn)    
  138.   {    
  139.   //   Return   true   if   strIn   is   in   valid   e-mail   format.    
  140.   return   Regex.IsMatch(strIn,   @"^([/w-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)$");    
  141.   }
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值