本文主要介绍手机号校验、身份证号(严格和非严格校验)、验证码六位数字的校验方法,具体代码如下。

我要身份证号码

  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: isSixNum

  isCard: 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 写一个就行,数据绑定事件绑定同理

  

  联系方式: