身份证号码,银行卡号,手机,座机,中文的正则表达式

身份证号码
  var IdCardreg =/^(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$)$/; 
银行卡号
//银行卡号Luhn校验算法
 2 //luhn校验规则:16位银行卡号(19位通用): 
 3 //1.将未带校验位的 15(或18)位卡号从右依次编号 1 到 15(18),位于奇数位号上的数字乘以 2。
 4 //2.将奇位乘积的个十位全部相加,再加上所有偶数位上的数字。
 5 //3.将加法和加上校验位能被 10 整除。
 6 //bankno为银行卡号
<input type="number" id='cardNum'>
//取消type='number'后面的数字控件
        input::-webkit-outer-spin-button,
        input::-webkit-inner-spin-button {
          -webkit-appearance: none;
        }
        input[type="number"]{
          -moz-appearance: textfield;
        }
//js做银行卡号的正则判断
function luhmCheck(bankno){
            var lastNum=bankno.substr(bankno.length-1,1);//取出最后一位(与luhm进行比较)  

            var first15Num=bankno.substr(0,bankno.length-1);//前15或18位  
            var newArr=new Array();  
            for(var i=first15Num.length-1;i>-1;i--){    //前15或18位倒序存进数组  
                newArr.push(first15Num.substr(i,1));  
            }  
            var arrJiShu=new Array();  //奇数位*2的积 <9  
            var arrJiShu2=new Array(); //奇数位*2的积 >9  

            var arrOuShu=new Array();  //偶数位数组  
            for(var j=0;j<newArr.length;j++){  
                if((j+1)%2==1){//奇数位  
                    if(parseInt(newArr[j])*2<9)  
                    arrJiShu.push(parseInt(newArr[j])*2);  
                    else  
                    arrJiShu2.push(parseInt(newArr[j])*2);  
                }  
                else //偶数位  
                arrOuShu.push(newArr[j]);  
            }  

            var jishu_child1=new Array();//奇数位*2 >9 的分割之后的数组个位数  
            var jishu_child2=new Array();//奇数位*2 >9 的分割之后的数组十位数  
            for(var h=0;h<arrJiShu2.length;h++){  
                jishu_child1.push(parseInt(arrJiShu2[h])%10);  
                jishu_child2.push(parseInt(arrJiShu2[h])/10);  
            }          

            var sumJiShu=0; //奇数位*2 < 9 的数组之和  
            var sumOuShu=0; //偶数位数组之和  
            var sumJiShuChild1=0; //奇数位*2 >9 的分割之后的数组个位数之和  
            var sumJiShuChild2=0; //奇数位*2 >9 的分割之后的数组十位数之和  
            var sumTotal=0;  
            for(var m=0;m<arrJiShu.length;m++){  
                sumJiShu=sumJiShu+parseInt(arrJiShu[m]);  
            }  

            for(var n=0;n<arrOuShu.length;n++){  
                sumOuShu=sumOuShu+parseInt(arrOuShu[n]);  
            }  

            for(var p=0;p<jishu_child1.length;p++){  
                sumJiShuChild1=sumJiShuChild1+parseInt(jishu_child1[p]);  
                sumJiShuChild2=sumJiShuChild2+parseInt(jishu_child2[p]);  
            }        
            //计算总和  
                    sumTotal=parseInt(sumJiShu)+parseInt(sumOuShu)+parseInt(sumJiShuChild1)+parseInt(sumJiShuChild2);                
            //计算Luhm值  
            var k= parseInt(sumTotal)%10==0?10:parseInt(sumTotal)%10;          
            var luhm= 10-k;  

            if(lastNum==luhm && lastNum.length != 0){  
               return true;  
            }  
            else{  
               return false;  
            }          
        }
        $('#cardNum').on('change',function(){
             if(!luhmCheck($('#cardNum').val())){
                console.log('错误')  
            }else{
                console.log('ok')
            }
        })

手机号码

var phoneReg =/^1[3584]\d{9}$/;

座机

var phoneReg =/^0\d{2,3}-\d{6,8}$/;

座机和手机同时满足

var phoneReg =/^((0\d{2,3}-\d{6,8})|(1[3584]\d{9}))$/;

中文

var cardUserReg = /^[u4E00-u9FA5]+$/;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值