js 身份证、手机号、邮箱验证

/**
 * 邮箱校验
 */
function check_email(email){
    var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
    return reg.test(email);
}
/**
 * 手机号校验,1开头共11位数字。
 */
function check_phone(phone){
   var reg = /^1\d{10}$/;
    return reg.test(phone);
}
/**
 * 身份证校验,身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
 */
function check_ID(card){
    var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
    if(reg.test(card)){
        if(card.length==18){
        //将前17位加权因子保存在数组里
            var idCardWi=new Array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ); 
        //这是除以11后,可能产生的11位余数、验证码,也保存成数组
            var idCardY=new Array( 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ); 
       //用来保存前17位各自乖以加权因子后的总和
            var idCardWiSum=0; 
            for(var i=0;i<17;i++){
                idCardWiSum+=card.substring(i,i+1)*idCardWi[i];
            }
    //计算出校验码所在数组的位置
            var idCardMod=idCardWiSum%11;
        //得到最后一位身份证号码
            var idCardLast=card.substring(17);

       //如果等于2,则说明校验码是10,身份证号码最后一位应该是X
            if(idCardMod==2){
                if(idCardLast=="X"||idCardLast=="x"){
                    return true;
                }else{
                    return false;
                }
            }else{
          //用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
                if(idCardLast==idCardY[idCardMod]){
                    return true;
                }else{
                    return false;
                }
            }
        }
    }else{
        return false;
    }
}
/**
 * 字母校验
 * @param obj
 * @returns {boolean}
 */
function check_letter(obj){
    if (/^[a-za-z]+$/.test( obj ))
    {
        return true;
    }else{
        return false;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里是一个简单的表单示例,包含了邮箱手机号、邮编、密码、用户名、身份证号的正则验证: ```html <form> <label> 邮箱: <input type="text" name="email" required pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$"> </label> <br> <label> 手机号: <input type="text" name="phone" required pattern="^1[3-9]\d{9}$"> </label> <br> <label> 邮编: <input type="text" name="zipcode" required pattern="^\d{6}$"> </label> <br> <label> 密码: <input type="password" name="password" required pattern="^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"> </label> <br> <label> 用户名: <input type="text" name="username" required pattern="^[a-zA-Z0-9_-]{4,16}$"> </label> <br> <label> 身份证号: <input type="text" name="idcard" required pattern="^\d{17}[\d|X]$"> </label> <br> <button type="submit">提交</button> </form> ``` 解释一下各个正则表达式的含义: - 邮箱:pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" - 以小写字母、数字、下划线、百分号、加号、减号、点号为开头,连续出现至少一个 - 后面跟着一个 @ 符号 - 然后是至少一个小写字母、数字、减号、点号,最后是一个小写字母,长度至少为 2 - 手机号:pattern="^1[3-9]\d{9}$" - 以 1 开头 - 第二位是 3-9 中的一个数字 - 后面跟着任意 9 个数字 - 邮编:pattern="^\d{6}$" - 6 个数字 - 密码:pattern="^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$" - 至少 8 个字符 - 必须包含至少一个字母和一个数字 - 可以包含字母、数字 - 用户名:pattern="^[a-zA-Z0-9_-]{4,16}$" - 4-16 个字符 - 可以包含大小写字母、数字、下划线、减号 - 身份证号:pattern="^\d{17}[\d|X]$" - 18 位字符 - 前面 17 位是数字 - 最后一位是数字或者大写字母 X

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值