vue表单验证

        1.姓名验证

                /^[\u4e00-\u9fa5]{2,4}$/ //2-4个中文字符正则

        2.座机验证

                /^(0\d{2,3})-?(\d{7,8})$/

        3.电子邮箱验证

                /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/

        4.邮政编码验证

                /^[1-9]\d{5}$/

        5.注册账号验证

                /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/

        6.QQ号码验证

                /^[1-9][0-9]\d{4,9}$/

        7.手机号验证

                /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/

                rules:{

                        手机号:

                        phone:[

                                {required:true,messgae:'请输入手机号',trigger:'blur'},

                                {pattern: /^(((\+?86)|(\(\+86\)))?1[13456789]\d{9}|((\+?61)|((\+61\)))?4\d{8})$/

                                message:'手机格式不对‘,trigger:'blur'}

                        ]

                        身份证号:

                        idCard:[

                                {required:true,validator: checkIdentitytionId, trigger: 'blur' }

                        ],

                }

        8.身份证验证

                这段代码写在 data 里面,不用放在 data return 里面

                var checkIdentitytionId = (rule, value, callback) => {

                      if (!value) {

                                return callback(new Error('身份证号不能为空'))

                      }

                      if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(value)) {

                                callback(new Error('你输入的身份证长度或格式错误'))

                      }

                      //身份证城市

                      var aCity = {

                                11: '北京',

                                12: '天津',

                                13: '河北',

                                14: '山西',

                                15: '内蒙古',

                                21: '辽宁',

                                22: '吉林',

                                23: '黑龙江',

                                31: '上海',

                                32: '江苏',

                                33: '浙江',

                                34: '安徽',

                                35: '福建',

                                36: '江西',

                                37: '山东',

                                41: '河南',

                                42: '湖北',

                                43: '湖南',

                                44: '广东',

                                45: '广西',

                                46: '海南',

                                50: '重庆',

                                51: '四川',

                                52: '贵州',

                                53: '云南',

                                54: '西藏',

                                61: '陕西',

                                62: '甘肃',

                                63: '青海',

                                64: '宁夏',

                                65: '新疆',

                                71: '台湾',

                                81: '香港',

                                82: '澳门',

                                91: '国外',

              }

              if (!aCity[parseInt(value.substr(0, 2))]) {

                        callback(new Error('你的身份证地区错误'))

              }

              // 出生日期验证

              var sBirthday = (

                          value.substr(6, 4) + '-'  + Number(value.substr(10, 2)) +  '-' +Number(value.substr(12, 2))).replace(/-/g, '/'),

                        d = new Date(sBirthday)

                       if (

                                sBirthday !=

                                d.getFullYear() + '/' + (d.getMonth() + 1) + '/' + d.getDate()

                        ) {

                                callback(new Error('身份证上的出生日期错误'))

              }

              // 身份证号码校验

                      var sum = 0,

                      weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],

                      codes = '10X98765432'

                      for (var i = 0; i < value.length - 1; i++) {

                                sum += value[i] * weights[i]

                      }

                      var last = codes[sum % 11] //计算出来的最后一位身份证号码

                      if (value[value.length - 1] != last) {

                          callback(new Error('你输入的身份证号错误'))

                      }

                              callback()

            }

         9.通过身份证号获取出生日期和性别

                 1.根据身份证号码获取出生日期

                        function getBirth(idCard) {

                                var birthday = "";

                                if(idCard != null && idCard != ""){

                                        if(idCard.length == 15){

                                                 birthday = "19"+idCard.slice(6,12);

                                        } else if(idCard.length == 18){

                                                birthday = idCard.slice(6,14);

                                        }

                                        birthday = birthday.replace(/(.{4})(.{2})/,"$1-$2-");

                                         //通过正则表达式来指定输出格式为:1990-01-01 } return birthday; }

        代码中的if判断是因为一代身份证是15位,二代身份证是18位。但是现在第一代身份证已经失效了,所以不考虑也是可以的.

                

                2.根据身份证号码获取性别

                        function getSex(idCard) {

                                var sexStr = '';

                                if (parseInt(idCard.slice(-2, -1)) % 2 == 1) {

                                        sexStr = 'man';

                                } else {

                                        sexStr = 'woman';

                                }

                                return sexStr;

                        }

        性别是根据身份证的倒数第二位来判断的,奇数为男生,偶数为女生.

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值