`

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>

  

分享到:
评论

相关推荐

    各种正则表达式验证有数字英文中文符号

    ### 正则表达式验证规则 #### 1. **任意非空字符串验证** ```regex Require:/.+/ ``` 此正则表达式用于匹配任何非空字符串,至少包含一个或多个字符。 #### 2. **电子邮件格式验证** ```regex Email:/^\w+([-+.]\w...

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

    正则表达式(Regular Expression),是一种文本模式的描述方法,它提供了一种在字符串中进行搜索、替换、匹配等操作的方式,而JS正则表达式是正则表达式在JavaScript语言中的实现。在软件开发中,正则表达式被广泛...

    常用正则表达式大全.txt

    通过定义一组规则来识别文本中的特定模式,正则表达式被广泛应用于各种场景,如数据验证、搜索替换等。 ### 数字验证 1. **纯数字验证**:只允许输入纯数字。 - 正则表达式:`^[0-9]*$` - 示例:`12345` 2. **...

    各种正则表达式验证

    本文将详细介绍几种常见类型的正则表达式验证规则,包括邮箱、数字、日期、电话号码、IP地址、QQ号码、MSN账号以及身份证号码。 #### 二、正则表达式验证规则详解 ##### 1. 英文字符验证 ```javascript this.reg....

    JavaScript常用正则表达式

    在JavaScript中,正则表达式可以用来验证用户输入,例如检查邮箱地址的有效性或手机号码的格式。以下是一些JavaScript中常见的正则表达式及其应用: 1. 邮箱验证: ```javascript const emailRegex = /^[a-zA-Z0-...

    js的正则表达式js的正则表达式

    正则表达式在JavaScript中是非常强大的工具,可以帮助开发者快速实现各种文本验证和处理需求。通过合理的构造正则表达式,不仅可以提高代码的效率,还能提升用户体验。以上提供的一些示例和模式仅供参考,实际应用中...

    验证数字的正则表达式集

    以下是一些针对数字验证的常用正则表达式及其详细解释: 1. **验证数字**:`^[0-9]*$` 这个正则表达式用于验证一个字符串是否只包含0到9的数字,无其他字符。 2. **验证 n 位的数字**:`^\d{n}$` 它会检查字符串...

    正则表达式数字验证

    在JavaScript中,同样可以通过正则表达式来验证数字的有效性。这里给出一个简单的例子: ```javascript function validate() { var reg = new RegExp("^[0-9]*$"); var obj = document.getElementById("name"); ...

    最实用最全面的正则表达式

    以上列举了一系列常用的正则表达式,涵盖了从简单的数字验证到复杂的文本处理各个方面。掌握这些表达式不仅能提高开发效率,还能提升代码的质量。需要注意的是,在使用正则表达式时,应根据具体的应用场景选择合适的...

    关于JQUERY的常用的正则表达式

    在进行Web前端开发时,利用jQuery结合正则表达式对用户输入的数据进行验证是一种非常常见的做法。这不仅可以提高用户体验,还能有效地确保数据的有效性和安全性。根据提供的文件信息,我们可以总结出以下常用正则...

    你所需要的web方面的常用正则表达式

    在Web开发中,正则表达式常用于表单验证、数据清洗、格式转换等场景。本文将围绕给定的文件信息,详细介绍几种常用的正则表达式及其应用场景。 #### 二、正则表达式限制输入中文 1. **表达式**: `^[\u4e00-\u9fa5]...

    C#中的常用正则表达式总结

    在Web开发中,正则表达式常用于表单验证,通过JavaScript事件如`onkeyup`、`onbeforepaste`等结合正则表达式限制输入内容。例如,限制输入中文的JavaScript代码如下: ```javascript onkeyup="value=value.replace...

    常用正则表达式.doc

    #### 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 此表达式用于验证Email地址的有效性。它支持包含字母、数字、下划线、连字符、加号、点号的用户名部分,以及包含字母、数字、连字符...

    JavaScript验证正则表达式大全

    包括正整数、负整数、整数、非负整数、非正整数、正浮点数、负浮点数、浮点数、非负浮点数、非正浮点数等,这些正则表达式可以满足不同类型的数字验证需求。 14. **匹配特定字符串**: 例如只包含英文字母、大写...

    正则表达式全集,各种验证

    - **说明**: 这个正则表达式用于验证整数的有效性,包括负数和正数。它可以匹配以1-9开头的数字,也可以匹配0。 - **示例代码**: ```javascript function isValidInteger(num) { var pattern = /^-?[1-9]\d*|0$/;...

    JS正则表达式验证数字代码

    1. **正则表达式验证数字**:在JS中,可以通过创建RegExp对象或者使用正则表达式字面量来验证数字。例如,`var reg = new RegExp("^[0-9]*$")` 或使用 `/^[0-9]*$/` 都是检查一个字符串是否全部由数字组成。 2. **...

    最全的正则表达式下载

    1. **验证整数**:`"^[0-9]*$"` 表示匹配任意长度的数字串,可以为空。 2. **验证n位数字**:`"^\d{n}$"` 用于匹配恰好由n个数字组成的字符串。 3. **验证n位或更多位数字**:`"^\d{n,}$"` 可以匹配n位以上的数字。 ...

Global site tag (gtag.js) - Google Analytics