旅途笔记

岂有豪情似旧时,花开花落两由之
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

常用验证

Posted on 2007-04-23 10:53  allonkwok  阅读(184)  评论(0编辑  收藏  举报

是否电子邮件、货币、日期、时间、数字、固定电话、移动电话、邮政编码、档案编号和身份证   
  提供上述方法,输入参数均为string   字符串,返回值均为bool   
  采用Regx(正则表达式)来验证   
    
  贴写参考,类就不写了.   
    
  匹配中文字符的正则表达式:   [\u4e00-\u9fa5]   
    
  匹配双字节字符(包括汉字在内):[^\x00-\xff]   
    
  匹配空行的正则表达式:\n[\s|   ]*\r   
    
  匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*)   \/>/     
    
  匹配首尾空格的正则表达式:(^\s*)|(\s*$)(像vbscript那样的trim函数)   
    
  匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*   
    
  匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w-   ./?%&=]*)?   
    
  匹配IP地址的正则表达式:Regex.IsMatch(strIn,@"^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$");   
    
  ===============================================================================   
  (\d{3}-|\d{4}-)?(\d{8}|\d{7})?       //国内电话   
  ^[1-9]*[1-9][0-9]*$         //腾讯QQ   
  ^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$    //email地址     
  ^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$  //url   
  ^\d+$                   //非负整数     
  ^[0-9]*[1-9][0-9]*$  //正整数     
  ^((-\\d+)|(0+))$  //非正整数   
  ^-[0-9]*[1-9][0-9]*$  //负整数     
  ^-?\\d+$           //整数     
  ^\\d+(\\.\\d+)?$  //非负浮点数   
  ^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$  //正浮点数     
  ^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$  //非正浮点数   
  ^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //负浮点数     
  ^(-?\\d+)(\\.\\d+)?$  //浮点数     
  ^[A-Za-z]+$  //由26个英文字母组成的字符串     
  ^[A-Z]+$  //由26个英文字母的大写组成的字符串     
  ^[a-z]+$  //由26个英文字母的小写组成的字符串     
  ^[A-Za-z0-9]+$  //由数字和26个英文字母组成的字符串     
  ^\\w+$  //由数字、26个英文字母或者下划线组成的字符串     
    
  ================================================================================   
  want   to   remove   all   <..>,   try   
    
  string   s   =   "...";   
    
  s   =   System.Text.RegularExpressions.Regex.Replace(s,"<[^>]+>","");   
    
    
  want   to   match   stuffs   inside   <>,   try   
    
  Regex   r   =   new   Regex("<([^>]+)>");     
  MatchCollection   mc=   r.Matches(source.ToString());     
  for   (int   i   =   0;   i   <   mc.Count;   i++)     
  {     
  string   results   =   mc[i].Value;   
  Console.WriteLine(mc[i].Groups[1].Value);   
  }   
    
  ================================================================================   
    
  ---------------------------------------------------------------------------   
  以下是例子:   
    
  利用正则表达式限制网页表单里的文本框输入内容:   
    
  用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"   onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"   
    
  1.用正则表达式限制只能输入全角字符:   onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')"   onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"   
    
  2.用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'')   "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"   
    
  3.用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'')   "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"   
    
  4.计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)   
    
  String.prototype.len=function(){return   this.replace([^\x00-\xff]/g,"aa").length;}   
    
  5.javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:   
    
  String.prototype.trim   =   function()   
  {   
          return   this.replace(/(^\s*)|(\s*$)/g,   "");   
  }   
    
  利用正则表达式分解和转换IP地址:   
    
  6.下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:   
    
  function   IP2V(ip)   
  {   
    re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g     //匹配IP地址的正则表达式   
  if(re.test(ip))   
  {   
  return   RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1   
  }   
  else   
  {   
    throw   new   Error("不是一个正确的IP地址!")   
  }   
  }   
    
  不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:   
    
  var   ip="10.100.20.168"   
  ip=ip.split(".")   
  alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))