为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

猛跑小猪 2018-12-20 18:15:59
有一个校验证件号码的需求,但是证件编号前几位是包含数字的,比如“海第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


查看完整回答
反对 回复 2019-01-18
  • 1 回答
  • 0 关注
  • 638 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信