前端常用正则,方法可以直接用

1.手机号  /^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0-9])|(17[0-9])|(19[0-9]))\d{8}$/

2.邮箱  /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/

3.密码正则 6-14位

export const pPattern = /^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*.]{8,20}$/

4.银行卡号

luhnCheck (bankno) {

var lastNum = bankno.substr(bankno.length - 1, 1) // 取出最后一位(与luhn进行比较)

var first15Num = bankno.substr(0, bankno.length - 1) // 前15或18位

var newArr = new Array()

for (var i = first15Num.length - 1; i > -1; i--) { // 前15或18位倒序存进数组

newArr.push(first15Num.substr(i, 1))

}

var arrJiShu = new Array() // 奇数位*2的积 <9

var arrJiShu2 = new Array() // 奇数位*2的积 >9

var arrOuShu = new Array() // 偶数位数组

for (var j = 0; j < newArr.length; j++) {

if ((j + 1) % 2 == 1) { // 奇数位

if (parseInt(newArr[j]) * 2 < 9) arrJiShu.push(parseInt(newArr[j]) * 2)

else arrJiShu2.push(parseInt(newArr[j]) * 2)

} else // 偶数位

{ arrOuShu.push(newArr[j]) }

}

var jishu_child1 = new Array() // 奇数位*2 >9 的分割之后的数组个位数

var jishu_child2 = new Array() // 奇数位*2 >9 的分割之后的数组十位数

for (var h = 0; h < arrJiShu2.length; h++) {

jishu_child1.push(parseInt(arrJiShu2[h]) % 10)

jishu_child2.push(parseInt(arrJiShu2[h]) / 10)

}

var sumJiShu = 0 // 奇数位*2 < 9 的数组之和

var sumOuShu = 0 // 偶数位数组之和

var sumJiShuChild1 = 0 // 奇数位*2 >9 的分割之后的数组个位数之和

var sumJiShuChild2 = 0 // 奇数位*2 >9 的分割之后的数组十位数之和

var sumTotal = 0

for (var m = 0; m < arrJiShu.length; m++) {

sumJiShu = sumJiShu + parseInt(arrJiShu[m])

}

for (var n = 0; n < arrOuShu.length; n++) {

sumOuShu = sumOuShu + parseInt(arrOuShu[n])

}

for (var p = 0; p < jishu_child1.length; p++) {

sumJiShuChild1 = sumJiShuChild1 + parseInt(jishu_child1[p])

sumJiShuChild2 = sumJiShuChild2 + parseInt(jishu_child2[p])

}

// 计算总和

sumTotal = parseInt(sumJiShu) + parseInt(sumOuShu) + parseInt(sumJiShuChild1) + parseInt(sumJiShuChild2)

// 计算luhn值

var k = parseInt(sumTotal) % 10 == 0 ? 10 : parseInt(sumTotal) % 10

var luhn = 10 - k

if (lastNum == luhn) {

// $("#banknoInfo").html("luhn验证通过");

return true

} else {

// $("#banknoInfo").html("银行卡号必须符合luhn校验");

return false

}

},

5.身份证号码检验规则(checkID ()

// 身份证号码检验规则

var checkCode = function (val) {

var p = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/

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 code = val.substring(17)

if (p.test(val)) {

var sum = 0

for (var i = 0; i < 17; i++) {

sum += val[i] * factor[i]

}

if (parity[sum % 11] == code.toUpperCase()) {

return true

}

}

return false

}

var checkDate = function (val) {

var pattern = /^(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)$/

if (pattern.test(val)) {

var year = val.substring(0, 4)

var month = val.substring(4, 6)

var date = val.substring(6, 8)

var date2 = new Date(year + '-' + month + '-' + date)

if (date2 && date2.getMonth() == (parseInt(month) - 1)) {

return true

}

}

return false

}

var checkProv = function (val) {

var pattern = /^[1-9][0-9]/

var provs = { 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: '澳门' }

if (pattern.test(val)) {

if (provs[val]) {

return true

}

}

return false

}

export function checkID (val) {

if (checkCode(val)) {

var date = val.substring(6, 14)

if (checkDate(date)) {

if (checkProv(val.substring(0, 2))) {

return true

}

}

}

return false

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值