`

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

阅读更多

 

说明:

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

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

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

  

分享到:
评论

相关推荐

    正则表达式

    我们已经发现了,在正则表达式中所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript的正则表达式还通过以反斜杠(\)开头的转义序列支持某些非 字母字符.例如,序列 "\n" 在字符串中匹配的是一个直接量换...

    数字的正则表达式写法参考书

    一个不错的数字的正则表达式验证的电子参考书。内容预览: 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ ...

    java 正则表达式

    用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" (/[^\u4E00-\u9FA5\w]/g,''...

    用户名、密码等15个常用的js正则表达式

    收集整理了15个常用的javaScript正则表达式,其中包括用户名、密码强度、整数、数字、电子邮件地址(Email)、手机号码、身份证号、URL地址、 IPv4地址、 十六进制颜色、 日期、 QQ号码、 微信号、车牌号、中文正则...

    Javascript 常用正则表达式

    匹配特定数字: ^[1-9]d*$ //匹配正整数 ^-[1-9]d*$ //匹配负整数 ^-?[1-9]d*$ //匹配整数 ^[1-9]d*|0$ //匹配非负整数(正整数 + 0) ^-[1-9]d*|0$ //匹配非正整数(负整数 + 0) ^[1-9]d*.d*|0.d*[1-9]d*$ //...

    常用JavaScript正则表达式汇编与示例详解

    目前收集整理了21个常用的javaScript正则表达式,其中包括用户名、密码强度、整数、数字、电子邮件地址(Email)、手机号码、身份证号、URL地址、 IP地址、 十六进制颜色、 日期、 微信号、车牌号、中文正则等。...

    常用js正则的写法

    手机号码验证 去除空格 整数的验证 固定电话 验证是否为中文 qq号码 验证邮编 验证是否未email IP地址 身份证 字母和数字 浏览器的类型 客户端的分辨率 验证url 判断是否含有汉字 页面里回车到下一控件的焦点 ...

    javascript组件:jsvalidation-1_0b4

    javascript实现表单验证,实现的功能: 1.取值非空 2.必须为整数 3.必须为双精度数 4.必须为普通英文字符(字母,数字,下划线) 5.必须为中文字符 6.最小长度 7.最大长度 8.是否为Email格式 9.是否为日期...

    JS输入框邮箱地址验证代码

    匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 评注:表单验证时很实用 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* 评注:网上流传的版本功能很有限,上面这个基本可以满足需求 ...

    js验证框架

    tt.RV(正则表达式) tt.ExpV(表达式) tt.RemoteV(服务端验证) tt.SCV(选择个数) tt.DV(日期及时间) tt.NRV(数字范围) tt.LV(字符串长度) tt.CV(与其它字段或值比较) 直接通过tt.vf获取的验证器 req(非空) ...

    js验证框架1.05

    目前可实现的验证类型有: 1.是否为空; 2.中文字符; 3.双字节字符 4.英文; 5.数字; 6.整数; 7.实数; 8.Email地址; 9.使用HTTP协议的网址;...24.自定义的正则表达式验证; 25.文件上传格式过滤(1.04新增)。

    js表单验证 表单验证类 整合

    24.自定义的正则表达式验证; 25.文件上传格式过滤(1.04新增)。 更新历史: 1.01 修正对12月份的日期验证(感谢 flylg999 ) 1.03 修正Range验证类型时将数字当字符串比较的bug(感谢 cncom 和 xtlhnhbb ) 修正...

    Java-PHP-C#

    此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。 在某个Linux网站上面有这样的话:"如果你问一下Linux爱好者最喜欢...

    JS_check105验证及帮助文档

    JS_check105验证及帮助文档 表单的验证一直是网页...24.自定义的正则表达式验证; 运行环境(客户端): 在Windows Server 2003下用IE6.0+SP1和Mozilla Firefox 1.0测试通过; 在Lunix RedHat 9下的Netscape测试通过;

    使用客户端验证框架JSValidation

    JSValidation是客户端表单验证... 自定义的正则表达式 ? 整数范围(大于某数小于某数) ? 双精度数范围 ? 必须与某个域的值相同 使用步骤: 以我所做的测试为例,说明在实际应用中如何使用JSValidation。

    validate验证帮助文档

    表单的验证一直是网页设计者头痛的问题,表单验证类 Validator就是为解决这个问题而写的,旨在使设计者从纷繁复杂的表单验证中解放出来,把精力集中于网页的设计和功能上的改进上。...24.自定义的正则表达式验证;

    JavaScript对象验证库js-validator.zip

    regex验证域必须符合指定的正则表达式(JavaScript风格)。required验证域必须存在。required_if:field,value,...如果给定的域的值等于给定的值,验证域必须存在。这里的条件可以是多个域和值,它们之间的关系为“与...

    JSValidation-----强大而灵活的表单客户端验证框架

    是否为日期格式(yyyy-mm-dd) 自定义的正则表达式 整数范围(大于某数小于某数) 双精度数范围 必须与某个域的值相同 所有这些验证都在客户端完成。如果还有在此之外的验证需求,请告诉...

    jQuery formValidator表单验证插件示例源码

    对中文、英文、数字、整数、实数、Email地址格式、基于HTTP协议的网址格式、电话号码格式、手机号码格式、货币格式、邮政编码、身份证号码、QQ号码、日期等等这些控制,别的表单校验控件是代码里写死的,而...

    jQuery 表单验证插件

    对中文、英文、数字、整数、实数、Email地址格式、基于HTTP协议的网址格式、电话号码格式、手机号码格式、货币格式、邮政编码、身份证号码、QQ号码、日期等等这些控制,别的表单校验控件是代码里写死的,而...

Global site tag (gtag.js) - Google Analytics