说明:

元字符是正则表达式语法的一部分,有这些:

( [ { / ^ $ | ) ? * + .

任何时候使用他们都要对它们进行转义,比如: var regStr=//?/;

但是:如果不用上面的“字面量语法”的时候就要进行双重转义,如:var regStr="//?";

在用JS中预定义的特殊字符时候,如:/t,/n;还有一组预定义字符类如:.,/d,/D,/w;更应该注意转义。

我在复制代码的时候选的是HTML,//就被过滤成/了,所以会出现差异,这也是前面为什么网友们发现验证不对的地方。下面用文本粘贴:

正确的如下:


 <html>
 <head>
 <title>正则表达式验证示例</title>
 <script language="JavaScript">
 <!--
 function checkdata(){//检查函数
   //检查是否数字
     var txt = document.forms[0].num.value;
     if(txt.search("^-?//d+(//.//d+)?$")!=0){
         alert("请输入一个数字!");
         document.forms[0].num.select();
         return false;
     }
     //检查是否整数
     txt = document.forms[0].int.value;
     if(txt.search("^-?//d+$")!=0){
         alert("请输入一个整数!");
         document.forms[0].int.select();
         return false;
     }
     //检查EMAIL是否合法
     txt = document.forms[0].email.value;
     if(txt.search("^(?://w+//.?)*//w+@(?://w+//.?)*//w+$")!=0){
         alert("请输入正确的电子邮件!");
         document.forms[0].email.select();
         return false;
     }
     alert("检查通过!");
     return true;
 }
 -->
 </script>
 </head>
 <body>
 <p>
 <form action="" method="post" OnSubmit="return checkdata()">
 <br>请输入一个数字:<input type="text" name="num">
 <br>请输入一个整数:<input type="text" name="int">
 <br>请输入电子邮件:<input type="text" name="email">
 <br><input type="submit" value="提交">
 <form>
 </body>
 </html> 再补充一些:常用验证:
 <script language="JavaScript">
             <!-- //对付老式浏览器所用注释
             
    function testisNum(s){
     var s =document.getElementById('num').value; 
     if(isNum(s))
     {
      alert("是数字");
     }
     else
     {
      alert("请出入数字");
     }
    }
    
    
             //校验用户姓名:只能输入3-20个以字母和数字开头的字串
             function isTrueName(s)
             {
              var pattern=/^/w{3,20}$/;
              if(pattern.exec(s))
              {
               return true;
              }
              return false;
             }
             //校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
             function isTel(s)
             {
              var pattern =/^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$/;
              if(pattern.exec(s))
              {
               return true;
              }
              return false;
             }
             //校验手机号码:必须以数字开头,除数字外,可含有“-”
             function isMobile(s)
             {
              //var patrn=/^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$/;
              var patrn=/^((/(/d{0,3}/))|(/d{0,3}/-))?13|15/d{9}$/;
              if (!patrn.exec(s)){
                return false;
                }
               return true;
             }
             //校验(国内)邮政编码
             function isPostalCode(s)
             {
              var patrn=/^[0-9]{6}$/;
              //var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
               if (!patrn.exec(s)){
                return false;
                }
               return true;
             }
             
             function isIP(s) //by zergling
             {
              var patrn=/^[0-9.]{1,20}$/;
               if (!patrn.exec(s)) {
                return false;
                }
               return true;
             }
             //校验邮箱
             function isEmail(s)
             {
              var patrn=/^[a-zA-Z0-9_/-]{1,}@[a-zA-Z0-9_/-]{1,}/.[a-zA-Z0-9_/-.]{1,}$/;
               if (!patrn.exec(s)) {
                return false;
                }
               return true;
             }
             //校验日期
             function isdate(s)
             {
              var patrn=/^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(/s(((0?[0-9])|([1-2][0-3]))/:([0-5]?[0-9])((/s)|(/:([0-5]?[0-9])))))?$/;
               if (!patrn.exec(s)){
                return false;
                }
               return true;
             }
              
             //校验货币格式
             function isCurrency(s)
             {
              var patrn=/^/d+(/./d+)?$/;
               if (!patrn.exec(s)) {
                return false;
                }
               return true;
             }
             //校验搜索关键字
             function isSearch(s)
             {
              var patrn=/^[^`~!@#$%^&*()+=|///][/]/{/}:;/'/,.<>?]{1}[^`~!@$%^&()+=|///][/]/{/}:;/'/,.<>?]{0,19}$/;
               if (!patrn.exec(s)) {
               return false;
                }
               return true;
             }
             //检查是否数字
             function isNum(s)
             {
              var pattern = /^/d+(/./d+)?$/;
              if(pattern.test(s))
              {
               return true;
              }
              return false;
             }
              //检查是否整数
             function isInt(s)
             {
              var pattern = /^-?/d+$/;
              if(s.search(pattern)!=0)
              {
               return false;
              }
              return true;
             }
             -->
         </script> 
 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 补充 ::::::::::::::
 
 <script type="text/javascript">
      function validate(){
        var reg = new RegExp("^[0-9]*$");
        var obj = document.getElementById("name");
     if(!reg.test(obj.value)){
         alert("请输入数字!");
     }
     if(!/^[0-9]*$/.test(obj.value)){
         alert("请输入数字!");
     }
   }
 </script> 验证数字的正则表达式集 
 验证数字:^[0-9]*$ 
 验证n位的数字:^\d{n}$ 
 验证至少n位数字:^\d{n,}$ 
 验证m-n位的数字:^\d{m,n}$ 
 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 
 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 
 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 
 验证非零的正整数:^\+?[1-9][0-9]*$ 
 验证非零的负整数:^\-[1-9][0-9]*$ 
 验证非负整数(正整数 + 0) ^\d+$ 
 验证非正整数(负整数 + 0) ^((-\d+)|(0+))$ 
 验证长度为3的字符:^.{3}$ 
 验证由26个英文字母组成的字符串:^[A-Za-z]+$ 
 验证由26个大写英文字母组成的字符串:^[A-Z]+$ 
 验证由26个小写英文字母组成的字符串:^[a-z]+$ 
 验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 
 验证由数字、26个英文字母或者下划线组成的字符串:^\w+$ 
 验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。 
 验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+ 
 验证汉字:^[\u4e00-\u9fa5],{0,}$ 
 验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 
 验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$ 
 验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。 
 验证身份证号(15位或18位数字):^\d{15}|\d{}18$ 
 验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12” 
 验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。 
 整数:^-?\d+$ 
 非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$ 
 正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 
 非正浮点数(负浮点数 + 0) ^((-\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+)?$