常用的校验方法

1、通过身份证获取年龄、性别

//通过身份证获取年龄 & 生日
const idCardBirthday = function(data){
  //获取出生年月日
  var year = data.substring(6,10);
  var month = data.substring(10,12);
  var day = data.substring(12,14);
  return `${year}-${month}-${day}`
}



//通过身份证获取性别
const idCardGender = function(data){
  //1 男 2 女
  return parseInt(data.slice(-2, -1)) % 2 == 1 ? 1 : 2;
}



const birthdayAge = function(str, type) {
  var type = type || 'year';

  //补零
  let zeroize = function(value) {
  if (value < 10) {
    value = '0' + value
  }
    return value
  }

  var birthDay = new Date(str)
  var yearBirth = birthDay.getFullYear();
  var monthBirth = birthDay.getMonth() + 1;
  var dayBirth = birthDay.getDate();

  var myDate = new Date();
  var monthNow = myDate.getMonth() + 1;
  var dayNow = myDate.getDate();
  var age = myDate.getFullYear() - yearBirth;
  if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) {
    age--;
   }

  return age
}

 

2、手机号

const mobile = /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/ //验证国内手机号码

const phone = /^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$/ //验证国内电话号码

 

3、姓名

const name = /(^([a-zA-Z]+\s)*[a-zA-Z]+$)|(^[\u4E00-\u9FA5]+$)/;

 

4、网址

const domain = /(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/;

 

5、邮箱

const email = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/

 

6、最多一位小数

var reg = /^[0-9]+([.]{1}[0-9]{1})?$/;

 

7、身份证校验

var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/

 

8、密码

// 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线)
var reg = /^[a-zA-Z]\w{5,17}$/

// 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间)

var reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$/

// 强密码(必须包含大小写字母和数字的组合,可以使用特殊字符,长度在8-10之间)

var reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/

 

9、数字校验

// 数字
var reg = /^[0-9]*$/

// 至少n位的数字
var reg = /^\d{n,}$/

// m-n位的数字
var reg = /^\d{n,m}$/

 

10、车牌号(包含新能源)

const licenseNo =  /^([京津晋冀蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][ABCDEFGHJKLMNPQRSTUVWXY][1-9DF][1-9ABCDEFGHJKLMNPQRSTUVWXYZ]\d{3}[1-9DF]|[京津晋冀蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][ABCDEFGHJKLMNPQRSTUVWXY][\dABCDEFGHJKLNMxPQRSTUVWXYZ]{5})$/

 

11、校验0~100

// 校验0~100
var reg = /^(100|(([1-9]){1}[0-9]?|0{1})((\.)([0-9]){1,2})?)$/

// 0小于999,保留一位小数(0.1-999)
var reg = /^(?!999|0+$)\d{1,3}(\.\d)?$/

// 0小于999,保留一位小数(0.1-999),包含999
var reg = /^(?!999\.\d|0+$)\d{1,3}(\.\d)?$/

 

 

 

 

from : https://c.runoob.com/front-end/854

 

posted @ 2021-04-29 16:59  逩跑得前端小学生  阅读(678)  评论(0)    收藏  举报