正则表达式验证数字_js正则表达式验证验证数字或字母 - CSDN
精华内容
参与话题
  • JS正则表达式验证各种数字类型

    千次阅读 2019-05-27 16:04:51
    在使用php写网站的时候,经常会遇到需要判断用户输入内容的情况,比如需要输入邮箱,结果输入的是qq号,这种情况要及时提醒用户输入错误,这样才能优化用户体验。 js代码 <script type="text/javascript">...

    在使用php写网站的时候,经常会遇到需要判断用户输入内容的情况,比如需要输入邮箱,结果输入的是qq号,这种情况要及时提醒用户输入错误,这样才能优化用户体验。

    js代码

    <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*)?$ 
    验证电话号码:^(\d3,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+)?$

     

    本文转载自:【精】JS正则表达式验证各种数字类型_镜站网

    展开全文
  • 正则表达式数字验证

    千次阅读 2019-03-27 11:01:10
    正则表达式数字验证 第一部分:数值验证 1.验证只包含数字、指定长度(N)的字符串  比如我要验证只包含数字,长度为6的字符串,如123456,则可以使用下面几种效果相同的验证方式 \d{6} [0-9]{6} \d\d\d\d\...

    博客地址:http://www.cnblogs.com/zhuzhenwei918/p/6202932.html

    正则表达式之数字验证

    第一部分:数值验证

         1.验证只包含数字、指定长度(N)的字符串

        比如我要验证只包含数字,长度为6的字符串,如123456,则可以使用下面几种效果相同的验证方式

    \d{6}
    [0-9]{6}
    \d\d\d\d\d\d

        上述几种方式效果相同,更推荐第一种,它更加简洁! 注:后面我都会使用较为简洁的正则表达式,而不会太过啰嗦!

     

      2.验证只包含数字、指定范围长度(N-M)的单词字符串

        比如我要验证只包含数字,长度在5到8之间的字符串,如12345,123456,1234567,12345678,则可以使用的验证方式

         

      

      3.非负整数的验证

      显然0,100,56等都是非负整数,而-12,0135等都不是非负整数,验证演示如下:

          

      我们可以看到021 -56由于不是正数,不会被选中。(注意:其中用到了^,表示必须以0或者[1-9]开头,因此-56没有被选中;如果没有^,那么-56中的56会被选中)

     

      4.任意整数的验证

      任意整数即如0,456,-65等等这是任意整数,也就是说我们需要把正数和非负整数结合起来,验证演示如下:

      

      于是所有的正数包括0、正整数和负整数都匹配了。

     

      5.指定范围内的正整数的验证

        比如说我们希望验证1-5678区间内的正整数,如465,23,5677等都属于这个范围,这该怎么验证呢?别着急,我们可以分区间验证:

    • 使用\b[1-9]\d{0-2}\b来验证1-999之间的所有正整数
    • 使用\b[1-4]\d{3}\b来验证1000-4999之间的所有正整数
    • 使用\b5[0-5]\d{2}\b来验证5000-5599之间的所有正整数
    • 使用\b56[0-6]\d\b来验证5600-5669之间的所有正整数
    • 使用\b567[0-8]\b来验证5670-5678之间的所有正整数

      综上所述,我们可以使用如下正则表达式来验证1-5678之间的所有正整数:

    ^([1-9]\d{0,2})|([1-4]\d{3})|(5[0-5]\d{2})|(56[0-6]\d)|(567[0-8])$

      但果真是这样吗?验证如下:

      

       怎么成这样了呢???后面的三个数的验证都不是我们想要的效果啊!!这是因为正则表达式在匹配时会从左向右匹配,其中2602和4999因为使用[1-9]\d{0,2}可以完成匹配,所以就无需继续了。

       我们把正则表达式的顺序倒过来试试? 如下所示:

    ^(567[0-8])|(56[0-6]\d)|(5[0-5]\d{2})|([1-4]\d{3})|([1-9]\d{0,2})$

      效果如下:

       这次令我们高兴的是在1-5678之间的数都被选上了!!但789和-5中的5被选上了。这是因为我们只在第一个分组前添加了^,我们需要做的是每个分组前都添加^。如下所示:

    ^(567[0-8])|^(56[0-6]\d)|^(5[0-5]\d{2})|^([1-4]\d{3})|^([1-9]\d{0,2})$

      这次效果就没有问题了,如下:

      由此可知:组合顺序原则(正整数):依次从最大值的范围组合到最小值的范围组合。

      从这个例子受到启发,我们对于指定范围内的正整数的验证的第一个例子中的每一个分组后添加$或\b也可以解决问题。

    也就是说下面的两行代码均有效:

    ^(567[0-8])|^(56[0-6]\d)|^(5[0-5]\d{2})|^([1-4]\d{3})|^([1-9]\d{0,2})$
    ^([1-9]\d{0,2})$|([1-4]\d{3})$|(5[0-5]\d{2})$|(56[0-6]\d)$|(567[0-8])$

     

     

      6.实数的验证

       这里要介绍的实数的验证是至少包含一个小数点的实数,因此实数就包括了整数部分、小数部分和小数点。

         验证方法如下:

    -?(0|([1-9]\d*))\.\d+

       其中-?表示可以有负号也可以没有负号,(0|[1-9]\d*)表示整数部分可以是0也可以是不以0开头的其他整数,\.是为了对元字符.进行转义,\d+表示在小数点后面可以有1个或多个数字重复。所以它可以用来验证一般形式的实数(如0.0、1.2、-1.20等),还可以用来验证负0,如-0.0、-0.00等。

        

            如果我们希望验证指定精度的实数,我们只需要把末尾的+修改成相应的精度即可,如下所示:

    -?(0|([1-9]\d*))\.\d{3}$

      即表示小数部分长度为3的实数。

     

      7.科学计数法的验证

        科学计数法就是把一个数记成a*10^n的形式。其中,a是一位整数或着是只有一位整数的小数(如5,3.2等等),所以可知1<=|a|<10。而n是一位整数。所以不难得出科学计数法的验证方法如下所示:

      

    ^-?[1-9](\.\d+)?\*10\^-?\d+$

     

     

    第二部分:4种国内电话号码的验证

      我们知道中国的电话号码的形式不外乎有下面四种:

    1. 手机号码
    2. 固定电话号码(不包括区号)
    3. 区号+固定电话号码
    4. 区号+固定电话号码+分机号

      下面我们按照顺序逐一介绍

    1.手机号码

      目前国内的手机号码多是13开头、15开头和18开头,并且第三位数字目前都有【0-9】这10个数,所以验证起来就很简单了。如下所示:

          

      显然第二种方法更简单一些。

     

    2.固定电话号码(不包括区号)

      固定电话号码一般为7位(如2268358)或8位(82668110),所以验证起来是非常简单的,如下所示:

      但是,某个地区的电话号码往往是固定在一个具体的范围里的,比如新疆石河子某个地区为2268001-2268999,这时想要确定就需要稍微花一些功夫了。

      我们可以把2268001-2268999划分为2268001-2268009和2268010-2268099和2268100-2268999。这样,把验证三者的正则表达式组合起来即可。如下所示:

    2268((00[1-9])|(0[1-9]\d)|([1-9]\d{2}))

      效果如下:

    PS 这里就不具体介绍啦,都是很简单的知识,如果有疑问可以看我的上一篇博文,它对基本知识阐述得很具体。

     

     

    3.区号+固定电话号码验证

      区号的长度一般为3-4位,固定电话号码的长度一般为7-8位,比如029-82668110为3位区号和8位固定电话号码的组合,0993-2268358是4位区号和7位固定号码的组合。且在区号和固定号码之间一般都是由-(连字符)链接的。可知,我们只需要对区号和固定电话分别验证即可。  

    \b0\d{2,3}[- ]?\d{7,8}\b

      演示效果如下:

     

     

    4.区号+固定电话号码验证+分机号码验证

      一些比较大的公司、企业或者政府部门在向外部提供固定的电话号码是,除了区号、固定电话号码之外,还可能包括分机号码。

      下面我们以4位的分级号码为例。一般在分机号码之前可能是空格,也可能是-(连字符),还可能什么都没有。 于是验证方法如下:

    \b0\d{2,3}[- ]?\d{7,8}[- ]?\d{4}\b

      演示效果如下:

         

     

     

     

    第三部分:2种身份证号码的验证

    1.基本知识

      15位身份证号码:

        1985年我国实行居民身份证制度,当时签发的身份证号码是15位的。其中前6位为地址码,中间6位为出生日期码(年月日各用两位数字表示),最后三位为顺序码。

           (注:顺序码是对同年、同月、同日出生的人编订序号,顺序码的奇数分配给男性,偶数分配给女性)

      18位身份证号码:

        1999年我国开始使用18位的身份证号。其中前6位为地址码,中间8位为出生日期码(年用4位表示,月日各用2位表示),最后四位为顺序码和校验码。

        (注:年份用4位是因为使用2位会导致冲突,比如1903年和2003年出生的人。而校验码主要是为了校验计算机输入公民身份证号码的前17位数字是否正确,其取值范围是0至10,当值等于10时,用X表示)

     

    2. 15位身份证号码的验证

      前6位地址码可以为任意数字,78位的年份码为任意数字,9和10位的月份码应当在01-12之间,11和12位的日期码在01-31之间,最后三位的顺序码为长度为3的任意字符串。于是验证方法如下:

    \b\d{8}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}\b

     

    3. 18位身份证号码的验证

      前6位地址码为任意数字,7-10位的年份码前两位以19或20开头(这里就不考虑18开头了),月日同15位的身份证号码,三位顺序码为长度为3的任意字符串,最后以为验证码为0-9或X。于是验证方法如下:

    \b\d{6}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)\b

      因为只要知道了思路,正则表达式写出来并不难,所以这里就不细讲了。

     

     

    第四部分:邮政编码验证

      我国邮政编码的编码规则:我国采用四级六位编码制,前两位表示省、市、自治区,第三位代表邮区,第四位代表县、市,最后两位代表投递邮局,最后两位是代表从这个城市哪个投递区投递的,即投递区的位置。例如:邮政编码“130021”“13”代表吉林省,“00”代表省会长春,“21”代表所在投递区。

       因此验证我国的邮政编码就十分方便了,如下所示:

          

     

     

    第五部分:两种IP地址的验证

      IP地址可以简单验证,还可以精确验证。

    1.简单IP地址验证

      我首先ping到了www.cnblogs.com的IP地址:42.121.252.58。 实际上IP地址一般是1~3位整数.1~3位整数.1~3位整数.1~3位整数,于是我们可以通过下面的正则表达式作简单验证:

    ([1-9]\d{0,2}\.){3}[1-9]\d{0,2}

      验证效果如下所示:

     

    2.精确IP地址验证

      显然,上面的简单IP地址验证是不精确的,比如999.999.999.999这就不是一个正确的IP地址。

      我们知道32位IP地址的每一个数值都是在0~255之间,所以对于1~3位整数.1~3位整数.1~3位整数.1~3位整数我们应该将整数限制在0~255之间,显然,这里要使用分区间的方法了。

      0-99之间可以这样表示:([1-9]\d?)|0              (注意这里的表示方法,如果这个数不为0,那么前面就不能有0)

      100-199之间可以这样表示:1\d{2}

      200-249之间可以这样表示:2[0-4]\d

      250-255之间可以这样表示: 25[0-5]

      于是综上所述,可以得到精确IP地址验证的方法如下:

    (((25[0-5])|2[0-4]\d|1\d{2}|[1-9]\d|0)\.){3}((25[0-5])|2[0-4]\d|1\d{2}|[1-9]\d|0)

      演示效果如下:

    值得注意的是:分组是至关重要的,只有分对了组,才有可能不出问题。

    转载地址:http://www.cnblogs.com/zhuzhenwei918/p/6202932.html

    展开全文
  • ^[1-9]\d*\,\d*|[1-9]\d*$ 必须为数字,但是允许小数点

    ^[1-9]\d*\,\d*|[1-9]\d*$ 必须为数字,但是允许小数点

    展开全文
  • 正则表达式验证数字

    2019-08-26 13:58:48
    "^\\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?\\d+$" //整数 ...$" //非负浮点数(正浮点数 + 0)...

    "^\\d+$"  //非负整数(正整数 + 0)

    "^[0-9]*[1-9][0-9]*$"  //正整数

    "^((-\\d+)|(0+))$"  //非正整数(负整数 + 0)

    "^-[0-9]*[1-9][0-9]*$"  //负整数

    "^-?\\d+$"    //整数

    "^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 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+)?)|(0+(\\.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+)?$"  //浮点数

    展开全文
  • 验证数字:^[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位小数的...
  • JS正则表达式验证数字非常全

    千次阅读 2019-01-31 20:01:13
    &lt;script type="text/javascript"&gt; function validate(){ var reg = new RegExp("^[0-9]*$"); var obj = document.getElementById("name"... alert(...
  • h3>输入完按回车后即可验证!(自认为最简单!)h3>  正整数: input type="text" size="20" onkeydown="if(event.keyCode == 13) alert(/^\d+$/.test(this.value));">  br>  负整数: input type=...
  • 正则表达式 验证数字格式 非负数 小数点后保留两位 ,正则式如下: ^(([1-9]+)|([0-9]+\.[0-9]{1,2}))$ 测过了。非常准确。附上js的判断方法:   function checkMoneyFormat(val){  var reg = /^(([1-9]+)|...
  • php 正则表达式验证数字

    千次阅读 2019-01-17 11:01:06
    php 正则表达式验证数字
  • C#正则表达式验证数字static bool IsNumeric(string str) { System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[-]?\d+[.]?\d*$"); return reg1.IsMatch(str); ...
  • 正则表达式验证Ip地址(绝对正确)

    万次阅读 多人点赞 2020-06-29 14:38:47
    之前一直不太会写正则表达式,很多要用到正则表达式的都直接百度,像上次要用正则表达式验证是否是合法的ip地址,然后就上网找,结果就是没找到一个对的,今天就为大家贡献一下,写个对的,并做一下解析。...
  • JS正则表达式验证数字

    万次阅读 2013-07-30 16:04:21
    function validate(){  var reg = new RegExp("^[0-9]*$");  var obj = document.getElementById("name");  if(!reg.test(obj.value)){  alert("请输入数字!");  }  if(!/^[0-9]*$/.te
  • 正则表达式验证邮箱地址abc132@163.com

    万次阅读 2016-08-15 22:57:19
    正则表达式验证邮箱地址abc132@163.com
  • 比较常用的几个正则表达式(匹配数字)

    万次阅读 多人点赞 2012-08-17 16:01:43
    正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了...
  • JAVA正则表达式数字验证

    万次阅读 2017-06-05 11:00:39
    //正则表达式数字验证 public boolean isNumber(String str) { java.util.regex.Pattern pattern=java.util.regex.Pattern.compile("[0-9]*"); java.util.regex.Matcher match=pattern.matcher(str); if(match....
  • JS正则表达式验证数字,整数,email

    万次阅读 2008-03-29 16:26:00
    说明:元字符是正则表达式语法的一部分,有这些:( [ { / ^ $ | ) ? * + .任何时候使用他们都要对它们进行转义,比如: var regStr=//?/;但是:如果不用上面的“字面量语法”的时候就要进行双重转义,如:var regStr...
  • 使用正则表达式验证非零的正整数

    万次阅读 2013-11-23 12:15:08
    实例011 使用正则表达式验证非零的正整数 正则表达式经常被用于验证或处理字符串信息,本实例使用正则表达式来验证用户输入的信息是否为非零的正整数,如果用户输入的数值正确,则会弹出消息对话框,提示用户输入...
  • 正则表达式验证数字为0到30

    千次阅读 2012-06-14 15:34:22
    ^(?:[0-2][0-9]?|30)$ ^(?:0|[0-2][0-9]?|30)$  两个能实现同样的功能。验证输入为数字,且范围在0到30之间(包含0和30)    
  • 文章目录 ...正则表达式数字数字范围表达 在本文中,您将学习如何在正则表达式中匹配数字数字范围。正则表达式编号范围包括0到9...关于正则表达式要记住的第一件事是正则表达式不知道数字,不知道计数并且不能理解1-
1 2 3 4 5 ... 20
收藏数 78,203
精华内容 31,281
关键字:

正则表达式验证数字