JS正则表达式验证数字,整数,email

原创 2007年10月13日 11:45:00

 

说明:

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

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

任何时候使用他们都要对它们进行转义,比如: 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>

下面是以前错误的复制

<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>

  

js正则表达式校验金额

数字校验(项目中用于校验金额的): 任意正整数,正小数(小数位不超过2位) var isNum=/^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{...
  • t_332741160
  • t_332741160
  • 2015-07-20 17:34:40
  • 13226

JS正则表达式验证数字非常全

博客分类:  JavaScript   Js代码   "text/javascript">        function validate(){   ...
  • yongzhen150
  • yongzhen150
  • 2016-06-28 13:24:33
  • 13195

JS判断字符串是否为整数--简单的正则判断

是否为整数 if(!/^\d+$/.test(str)) alert("不是整数"); }...
  • l912943297
  • l912943297
  • 2017-01-03 13:57:04
  • 13972

117 js 正则表达式 test方法 验证输入正整数 去空格 去双引号

//持续天数正整数验证 if(document.getElementsByName("days")[0].value ){ var reg_whole_numb...
  • fancivez
  • fancivez
  • 2015-11-24 15:22:17
  • 1225

JS判断输入是否为整数的正则表达式

http://hi.baidu.com/liuywcom/blog/item/899d2ccf0b6f613ef9dc6128.html1:"^//d+$"  //非负整数(正整数 + 0) "^[0...
  • mosliang
  • mosliang
  • 2010-12-31 14:39:00
  • 13565

js验证数字正整数和0以及其他验证

js验证正整数和0:/^([1-9]\d*|[0]{1,1})$/
  • u012454429
  • u012454429
  • 2016-02-24 15:11:44
  • 2777

关于JS通过正则表达式循环检测多个Email格式_已经测试通过.

/***Title:check email pattern Code*Time:2006-11-24 *Author:colinmok*/function chkSendEmail(){       ...
  • colinmok
  • colinmok
  • 2006-11-25 10:40:00
  • 2727

email地址验证(js)

Email地址验证: function isVaildEmail(email) { var regex=/^[a-zA-Z0-9._-]+(\+[a-zA-Z0-9._-]+)*@([a...
  • chaehom
  • chaehom
  • 2012-07-18 11:43:14
  • 321

js 验证email

前台的验证比较帅气!  function emailCheck(email) {     if ((email.length > 128) || (email.length          retu...
  • lzy_1515
  • lzy_1515
  • 2009-09-23 09:26:00
  • 417

JS正则表达式验证数字、整数、email

JS正则表达式验证数字、整数、emailfunction checkdata(){//检查函数//检查是否数字    var txt = document.forms[0].num.value;   ...
  • dengyang163
  • dengyang163
  • 2010-04-08 20:29:00
  • 2370
收藏助手
不良信息举报
您举报文章:JS正则表达式验证数字,整数,email
举报原因:
原因补充:

(最多只允许输入30个字)