关键词

jQuery验证手机号邮箱身份证的正则表达式(含港澳台)

下面是关于“jQuery验证手机号邮箱身份证的正则表达式(含港澳台)”的完整攻略。

什么是正则表达式?

正则表达式是一种特殊的字符序列,它们可以用于搜索和验证文本中的信息。尤其在表单验证场景中,正则表达式是一种非常常见的用法。

手机号验证的正则表达式

以下是验证手机号的正则表达式,支持大陆、港澳台地区:

// 手机号验证正则表达式
/^(13[0-9]|14[56789]|15[012356789]|16[56]|17[0135678]|18[0-9]|19[89])\d{8}$/

该正则表达式的注释解释如下:

  • ^:匹配输入的字符串的开始位置。
  • (13[0-9]|14[56789]|15[012356789]|16[56]|17[0135678]|18[0-9]|19[89]):匹配手机号的前七位数字,其中|表示或的关系,()表示分组,方便後面的\d{8}引用。
  • \d:表示数字,等价于[0-9]
  • {8}:表示重复前面的标识符8次。
  • $:匹配输入的字符串的结束位置。

接下来是一个示例说明,如何在jQuery中使用该正则表达式进行手机号的验证:

HTML代码:

<input type="text" id="phone" name="phone" placeholder="请输入手机号"/>

jQuery代码:

$(document).ready(function(){
    // 验证手机号的正则表达式
    var reg_phone = /^(13[0-9]|14[56789]|15[012356789]|16[56]|17[0135678]|18[0-9]|19[89])\d{8}$/;

    $("#phone").blur(function(){
        // 获取手机号的输入值
        var phone = $(this).val();
        // 使用正则表达式进行手机号的验证
        if (!reg_phone.test(phone)) {
            alert("请输入正确的手机号!");
            $(this).focus();
        }
    });
});

邮箱验证的正则表达式

以下是验证邮箱的正则表达式,支持常见的邮箱类型:

// 邮箱验证正则表达式
/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/

该正则表达式的注释解释如下:

  • ^:匹配输入的字符串的开始位置。
  • [\w-]+:匹配邮箱地址中的用户名部分,其中\w 匹配字母、数字或下划线,+表示匹配前面的标识符一次或多次,[]表示一个字符集合,-表示字符集合中包含一个连字符。
  • (\.[\w-]+)*:匹配邮箱地址中的域名部分,其中()表示分组,*表示匹配前面的标识符零次或多次,.表示匹配一个点字符。
  • @:匹配一个@字符。
  • [\w-]+:匹配邮箱地址中的服务器名称部分。
  • (\.[\w-]+)+:同上,表示匹配邮箱地址中的域名部分。
  • $:匹配输入的字符串的结束位置。

接下来是一个示例说明,如何在jQuery中使用该正则表达式进行邮箱的验证:

HTML代码:

<input type="text" id="email" name="email" placeholder="请输入邮箱"/>

jQuery代码:

$(document).ready(function(){
    // 验证邮箱的正则表达式
    var reg_email = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;

    $("#email").blur(function(){
        // 获取邮箱的输入值
        var email = $(this).val();
        // 使用正则表达式进行邮箱的验证
        if (!reg_email.test(email)) {
            alert("请输入正确的邮箱!");
            $(this).focus();
        }
    });
});

身份证号验证的正则表达式

以下是验证身份证号的正则表达式,支持大陆、港澳台地区:

// 身份证号验证正则表达式
/(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1|2]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])(\d|X|x)$)/

该正则表达式的注释解释如下:

  • ^:匹配输入的字符串的开始位置。
  • [1-9]:匹配第一位不为零的数字。
  • \d{7}:匹配身份证号的第二到第八位数字。
  • ((0\d)|(1[0-2])):匹配身份证号的月份,其中|表示或的关系,()表示分组。
  • (([0|1|2]\d)|3[0-1]):匹配身份证号的日期,其中()表示分组,|表示或的关系,[0|1|2]表示匹配0、1或2,\d表示匹配数字。
  • \d{3}:匹配身份证号的倒数第二到第四位数字。
  • |:表示或的关系。
  • [1|2]\d{3}:匹配港澳台身份证号的年份,其中[1|2]表示匹配1或2,\d{3}表示匹配3个数字。
  • (\d|X|x):匹配身份证号的最后一位,其中(\d|X|x)表示匹配一个数字或字符Xx
  • $:匹配输入的字符串的结束位置。

接下来是一个示例说明,如何在jQuery中使用该正则表达式进行身份证号的验证:

HTML代码:

<input type="text" id="idcard" name="idcard" placeholder="请输入身份证号"/>

jQuery代码:

$(document).ready(function(){
    // 验证身份证号的正则表达式
    var reg_idcard = /(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1|2]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])(\d|X|x)$)/;

    $("#idcard").blur(function(){
        // 获取身份证号的输入值
        var idcard = $(this).val();
        // 使用正则表达式进行身份证号的验证
        if (!reg_idcard.test(idcard)) {
            alert("请输入正确的身份证号!");
            $(this).focus();
        }
    });
});

希望以上内容对你有所帮助,如果有任何问题,请随时提问。

本文链接:http://task.lmcjl.com/news/10155.html

展开阅读全文