获取距离当前时间多久的时间
/** • 获取距离当前时间多久的时间 • @param type year年/month月/week周/day日 • @param number -为之前/+为之后 */ export const getBeforAfterTime = function(type=null,number=0) { var nowdate = new Date(); switch (type) { case "day": //取number天前、后的时间 nowdate.setTime(nowdate.getTime() + (24 3600 1000) * number); var y = nowdate.getFullYear(); var m = nowdate.getMonth() + 1; var d = nowdate.getDate(); var retrundate = y + '/' + m + '/' + d; break; case "week": //取number周前、后的时间 nowdate.setTime(nowdate.getTime() + (7 24 3600 1000) number); var y = nowdate.getFullYear(); var m = nowdate.getMonth() + 1; var d = nowdate.getDate(); var retrundate = y + '/' + m + '/' + d; break; case "month": //取number月前、后的时间 nowdate.setMonth(nowdate.getMonth() + number); var y = nowdate.getFullYear(); var m = nowdate.getMonth() + 1; var d = nowdate.getDate(); var retrundate = y + '/' + m + '/' + d; break; case "year": //取number年前、后的时间 nowdate.setFullYear(nowdate.getFullYear() + number); var y = nowdate.getFullYear(); var m = nowdate.getMonth() + 1; var d = nowdate.getDate(); var retrundate = y + '/' + m + '/' + d; break; default: //取当前时间 var y = nowdate.getFullYear(); var m = nowdate.getMonth() + 1; var d = nowdate.getDate(); var retrundate = y + '/' + m + '/' + d; } return retrundate; }
正则校验篇
邮箱
export function isEmail (s) { return /^([a-zA-Z0-9-])+@([a-zA-Z0-9-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s) }
手机号码
export function isMobile (s) { return /^1[0-9]{10}$/.test(s) }
电话号码
export function isPhone (s) { return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s) }
匹配腾讯QQ号
export function isQQ (s) { return /[1-9][0-9]{4,}/.test(s) }
URL地址
export function isURL (s) { return /^http[s]?://.*/.test(s) }
合法uri
export function validateURL (textval) { const urlregex = /^(https?|ftp)://([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&% |[a-zA-Z0-9.,?'\+&% / return urlregex.test(textval) }
小写字母
export function validateLowerCase (str) { const reg = /[1]+$/ return reg.test(str) }
大写字母
export function validateUpperCase (str) { const reg = /[2]+$/ return reg.test(str) }
大小写字母
export function validatAlphabets (str) { const reg = /[3]+$/ return reg.test(str) }
验证pad还是pc
export const vaildatePc = function () { const userAgentInfo = navigator.userAgent const Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod' ] let flag = true for (var v = 0; v < Agents.length; v++) { if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false break } } return flag }
判断姓名是否正确
export function validatename (name) { var regName = /[4]{2,4}$/ if (!regName.test(name)) return false return true }
匹配8-16位数字和字母密码的正则表达式
export function validatePwd (pwd) { var regName = /^(?![0-9]+)[0-9A-Za-z]{8,16}$/ if (!regName.test(pwd)) return false return true }
密码匹配(至少数字、字母、特殊符号两组组合)
export function validatePwd (pwd) { var regName = /(^(?![A-Z]+)(?!\d+)\S+$)/ if (!regName.test(pwd)) return false return true }
密码匹配(密码由8位数字、大小写字母和特殊符号组成!)
export function validatePwd (pwd) { var regName = /(^(?=.[a-zA-Z])(?=.\d)(?=.*[~!@#)/ if (!regName.test(pwd)) return false return true }
判断是否为整数
export function validatenum (num, type) { let regName = /[^\d.]/g if (type == 1) { if (!regName.test(num)) return false } else if (type == 2) { regName = /[^\d]/g if (!regName.test(num)) return false } return true }
判断是否为小数
export function validatenumord (num, type) { let regName = /[^\d.]/g if (type == 1) { if (!regName.test(num)) return false } else if (type == 2) { regName = /[^\d.]/g if (!regName.test(num)) return false } return true }
判断是否为空
export function validatenull (val) { if (typeof val === 'boolean') { return false } if (typeof val === 'number') { return false } if (val instanceof Array) { if (val.length == 0) return true } else if (val instanceof Object) { if (JSON.stringify(val) === '{}') return true } else { if (val == 'null' || val == null || val == 'undefined' || val == undefined || val == '') return true return false } return false }
判断身份证号码
export function cardid (code) { let list = [] let result = true let msg = '' 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: '国外 ' } if (!validatenull(code)) { if (code.length == 18) { if (!code || !/(^\d{18})/.test(code)) { msg = '证件号码格式错误' } else if (!city[code.substr(0, 2)]) { msg = '地址编码错误' } else { // 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, 'x'] 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 } if (parity[sum % 11] != code[17]) { msg = '证件号码校验位错误' } else { result = false } } } else { msg = '证件号码长度不为18位' } } else { msg = '证件号码不能为空' } list.push(result) list.push(msg) return list }