javascript - 正则可以匹配具体的汉字吗?比如"海",“空”

查看:74
本文介绍了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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆