四十八、身份证号码,手机号验证方法,数组去重方法

身份证号码,手机号格式校验方法,数组去重方法

1,身份证号码验证,验证通过返回true,验证不通过返回false

    //身份证号验证
 function validIdNumber(code) {
		const 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: "国外 "
		};
		let pass = true;
		if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$/i.test(code)) {
			pass = false;
		} else if (!city[code.substr(0, 2)]) {
			pass = false;
		} else {
			//18位身份证需要验证最后一位校验位
			code = code.toUpperCase();
			if (code.length === 18) {
				code = code.split('');
				//∑(ai×Wi)(mod 11)
				//加权因子
				let factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
				//校验位
				let parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
				let sum = 0;
				let ai = 0;
				let wi = 0;
				for (let i = 0; i < 17; i++) {
					ai = code[i];
					wi = factor[i];
					sum += ai * wi;
				}
				let last = parity[sum % 11];
				if (last + '' !== code[17] + '') {
					pass = false;
				}
			}
		}
        console.log(pass);
         if(pass==true){
             alert("身份证号验证通过")
         }else{
             alert("身份证号验证不通过")
         }
		return pass;
	}

2,手机号码验证,验证通过返回true,验证不通过返回false

    //手机号验证
 function isMobile(s) {
   var regu = /^1[3,4,5,6,7,8,9][\d]{9}$/;
   let pass = true
   if (regu.test(s)) {
     pass=true
   } else {
     pass=false
   }
   console.log(pass);
      	if(pass==true){
          alert("手机号验证通过")
      }else{
          alert("手机号验证不通过")
      }
   return pass
 }

3,最简单的数组去重方法,方法中传入要处理的数组,方法执行后返回一个去重后的新数组(没法处理数组包对象的结构)

		//数组去重
    function newArrFn (arr) {
	 console.log([...new Set(arr)])
        // .new Set方法,返回是一个类数组,需要结合 ...运算符,转成真实数组
        return ([...new Set(arr)])
      }
     	//数组对象去重
     	let highProvince =[
     	{id:1,name:"小明"},
   		{id:2,name:"小明"},
   		{id:3,name:"小红"},
   		{id:4,name:"小红"},
     	];
		var obj = {};
		highProvince = highProvince.reduce(function(item, next) {
		 obj[next.name] ? '' : obj[next.name] = true && item.push(next);
			 return item;
		}, []);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值