有一个校验证件号码的需求,但是证件编号前几位是包含数字的,比如“海第03235623”,求解需求是校验军官证号码,比如“北字第15623652”“兰字第03265248”,而且前面第一个汉字可能是“广,成...”
1 回答
慕哥6287543
TA贡献1831条经验 获得超10个赞
下面是代码示例,使用了 ES6,需要的话自己转 ES5。
// JavaScript查看一个汉字的Unicode codepoint的方法:
function charcode(s, decimal) {
let x = s.charCodeAt(0)
if (decimal) return x
return '\\u' + x.toString(16)
}
charcode('海') // 6d77,十六进制
charcode('海', true) // 28023,十进制
// 如果你不知道怎么写手写正则,可以写一个函数来辅助:
function patterGen(provinces) {
let list = provinces.split('')
return new RegExp(
`^[${list.map(e => charcode(e) ).join('')}]${charcode('字')}${charcode('第')}\\d+$`
)
}
const P = patterGen('北海兰京成广')
P.test('兰字第03265248') // true
P.test('湖字第03265248') // false
添加回答
举报
0/150
提交
取消