车牌正则求教?

let rule1=/^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-H_J-N_P-Z_0-9]{5}$/;

如代码是我写的,但是还不完善,要求是:
省简称XYYYYY,其中X为A~Z字母中的一个,YYYYY由数字0~9和除I、O外的大写字母组成,但是不能全是大写字母;
最后一句,不能全是大写字母 该怎么写呀

阅读 3.2k
3 个回答

用正向否定预查
/^[\u4e00-\u9fa5][A-Z](?![A-HJ-NP-Z]{5})[A-HJ-NP-Z\d]{5}$/

正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

最简单的思路是: 先用你的正则把车牌号匹配出来, 然后再用js来筛选 “不能全是大写字母” 这个逻辑。

^[u4e00-u9fa5]{1}[A-Z]{1}·[A-HJ-NP-Zd]{5}$

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题