2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 微信小程序常用表单校验方法(手机号校验 身份证号(严格和非严格校验 验证码六位数

微信小程序常用表单校验方法(手机号校验 身份证号(严格和非严格校验 验证码六位数

时间:2020-05-13 12:17:46

相关推荐

微信小程序常用表单校验方法(手机号校验 身份证号(严格和非严格校验 验证码六位数

一个js文件专门放校验方法 方法记得导出

util.js

function isPhone(value) {if (!/^1(3|4|5|7|8)\d{9}$/.test(value)) {return false} else {return true}}//验证码六位数校验function isSixNum(value) {if (!/^\d{6}$/.test(value)) {return false} else {return true}}//身份证号不严格校验function isCard(value) {if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(value)) {return false} else {return true}}//身份证号严格校验function IdentityIDCard (code) {//身份证号前两位代表区域var city = {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: "国外 "};//身份证格式正则表达式var idCardReg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i;var errorMess = "";//错误提示信息var isPass = true;//身份证验证是否通过(true通过、false未通过)//如果身份证不满足格式正则表达式if (!code || !idCardReg.test(code)) {errorMess = "您输入的身份证号格式有误!";isPass = false;}//区域数组中不包含需验证的身份证前两位else if (!city[code.substr(0, 2)]) {errorMess = "您输入的身份证地址编码有误!";isPass = false;}else {//18位身份证需要验证最后一位校验位if (code.length == 18) {code = code.split('');//∑(ai×Wi)(mod 11)//加权因子var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//校验位var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];var sum = 0;var ai = 0;var wi = 0;for (var i = 0; i < 17; i++) {ai = code[i];wi = factor[i];sum += ai * wi;}var last = parity[sum % 11];if (parity[sum % 11] != code[17]) {errorMess = "您输入的身份证号不存在!";isPass = false;}}}var returnParam = {'errorMess': errorMess,'isPass': isPass}return returnParam;} //对外导出方法module.exports = {isPhone: isPhone,isSixNum: isSixNumisCard: isCard,IdentityIDCard: IdentityIDCard }

使用

index.js

import untils from '../../utils/util.js' //相对地址data(){return{isPhoneFlag: true, // 联系方式手机号状态isSixFlag: true, // 联系方式手机号状态isCardFlag: true, // 身份证状态isManagerTel: true, // 经理联系方式状态}},bindChange(e) {if (e.target.dataset.key){if (e.target.dataset.key == 'formOne.tele') {this.setData({isPhoneFlag: untils.isPhone(e.detail.value)})if (!this.data.isPhoneFlag) {wx.showToast({title: '联系方式格式有误',icon: 'none',duration: 2000,})}} if (e.target.dataset.key == 'formOne.uniqueCode') {this.setData({isSixFlag: untils.isSixNum(e.detail.value)})if (!this.data.isSixFlag) {wx.showToast({title: '请输入六位验证码',icon: 'none',duration: 2000,})}} if (e.target.dataset.key == 'formOne.idcard') {this.setData({isCardFlag: untils.IdentityIDCard(e.detail.value)})//console.log(this.data.isCardFlag.isPass)if (!this.data.isCardFlag.isPass) {wx.showToast({title: this.data.isCardFlag.errorMess,icon: 'none',duration: 2000,})}} if (e.target.dataset.key == 'formTwo.managerTel') {this.setData({isManagerTel: untils.isPhone(e.detail.value)})if (!this.data.isManagerTel) {wx.showToast({title: '经理联系方式格式有误',icon: 'none',duration: 2000,})}} }this.setData({[e.target.dataset.key]: e.detail.value})}

index.wxml 写一个就行,数据绑定事件绑定同理

<view class="section"><view class="section__title require">联系方式:</view><input type="number" name="tele" data-key="formOne.tele" bindblur="isPhone" bindchange="bindChange" value="{{formOne.tele}}" /></view>

data-key=“formOne.tele” 自定义属性key值为formOne.tele

获取key:e.target.dataset.key

微信小程序常用表单校验方法(手机号校验 身份证号(严格和非严格校验 验证码六位数字校验))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。