Created
May 16, 2017 09:18
-
-
Save hsuanxyz/93af3b1d33ec68554e972eba7b8e9da8 to your computer and use it in GitHub Desktop.
validation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Created by hsuanlee on 12/05/2017. | |
*/ | |
//字符串长度 | |
export function stringLen (val){ | |
if(!val || typeof val !== 'string'){ | |
return 0 | |
} | |
return val.replace(/[^\x00-\xff]/g, 'xx').length; | |
} | |
//手机 | |
export function isPhone (val){ | |
var reg = /(^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$)|(^0{0,1}1[3|4|5|6|7|8|9][0-9]{9}$)/; | |
return !!reg.test(val); | |
} | |
//座机 | |
export function isTel (val){ | |
var reg = /([0-9]{3,4}-)?[0-9]{7,8}/; | |
return !!reg.test(val); | |
} | |
//中文 | |
export function isChinese (val){ | |
var reg = /^[\u4E00-\u9FA5]+$/; | |
return !!reg.test(val); | |
} | |
// 邮件 | |
export function isEmail (val){ | |
var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/; | |
return !!reg.test(val); | |
} | |
export function isCarId(carId) { | |
var express = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[警京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{0,1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/; | |
return express.test(carId); | |
} | |
// 身份证 | |
export function isId (ID){ | |
if(typeof ID !== 'string') return false; | |
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 birthday = ID.substr(6, 4) + '/' + Number(ID.substr(10, 2)) + '/' + Number(ID.substr(12, 2)); | |
var d = new Date(birthday); | |
var newBirthday = d.getFullYear() + '/' + Number(d.getMonth() + 1) + '/' + Number(d.getDate()); | |
var currentTime = new Date().getTime(); | |
var time = d.getTime(); | |
var arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; | |
var arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; | |
var sum = 0, i, residue; | |
if(!/^\d{17}(\d|x)$/i.test(ID)) return false; | |
if(city[ID.substr(0,2)] === undefined) return false; | |
if(time >= currentTime || birthday !== newBirthday) return false; | |
for(i=0; i<17; i++) { | |
sum += ID.substr(i, 1) * arrInt[i]; | |
} | |
residue = arrCh[sum % 11]; | |
return residue === ID.substr(17, 1); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment