[收藏]几个常用的用正则表达式验证字符串的函数

<!-- name,phone,age,money checked-->
<script language=javascript runat=server>
  isName = /^[A-Za-z\-]+$/;   //这个是表明输入的名字只能是字母和连字符组成
  isPhone = /^(\+\d+ )?(\(\d+\) )?[\d ]+$/; //这个是国际通用的电话号码判断
  isAge  = /^(1[0-2]\d|\d{1,2})$/; //这个是年龄的判断
  isMoney = /^\d+\.\d{2}$/;  //这个是判断输入的是否为货币值
</script>
 <!-- Email地址有效性验证函数-->
<script language=javascript runat=server>
  function isEmail(src) {
    return (isEmail1.test(src) && isEmail2.test(src));
  }

  isEmail1    = /^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;
  isEmail2    = /^.*@[^_]*$/;
</script>
 <!-- IP地址有效性验证函数-->
 <script language=javascript runat=server>
    ip_ip = '(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)';
    ip_ipdot = ip + '\\.';
    isIPaddress = new RegExp('^'+ip_ipdot+ip_ipdot+ipdot+ip_ip+'$');
</script>
  
<!-- password有效性验证函数-->
<script language=javascript runat=server>
function TestPwd(src)
{
  var sxf,regex;
 sxf='^[\\w]{6,12}$';
  regex=new RegExp(sxf);
  return regex.test(src);
}
</script>
 
<!--ZipCode check function-->
<script language=javascript runat=server>
function TestZipCode(src)
 {
  var ZipCode,regex;
  ZipCode="^[\\d]{6}$"
  regex=new RegExp(ZipCode);
  return regex.test(src);
 }
</script>
 
<!--验证用户输入身份证号的合法性-->
<script language=javascript runat=server>
  isIdCorrect1=/^\d{15}$/;
  isIdCorrect2=/^\d{18}$/;
  function isIdCorrect(src)
  {
    return(isIdCorrect1.test(src)&&isIdCorrect2.test(src));
  }
</script>

应用也很简单,以上函数均是应用在服务器端,若用在客户端需要把runat=server去掉。我举两个例子:
IF isIPaddress.test(str)=false THEN
 Response.Write"IP 地址错误,请重新输入。"
 Response.End
END IF
IF TestPwd(str)=false THEN
  Response.Write"密码错误,请重新输入。"
 Response.End
END IF

事实上你只要熟练掌握正则表达式的应用,对于判断字符串输入的正确性那简直是小菜一碟。正则表达式还能用于字符串替换,ubb语法就是用正则表达式的替换做成的。
posted @ 2006-01-17 10:32  James.Ying  阅读(276)  评论(0编辑  收藏  举报