javascript - 正则可以匹配具体的汉字吗?比如"海",“空”
本文介绍了javascript - 正则可以匹配具体的汉字吗?比如"海",“空”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
有一个校验证件号码的需求,但是证件编号前几位是包含数字的,比如海第03235623,求解
需求是校验军官证号码,比如北字第15623652兰字第03265248,而且前面第一个汉字可能是广,成...
解决方案
下面是代码示例,使用了 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
这篇关于javascript - 正则可以匹配具体的汉字吗?比如"海",“空”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文