You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写JavaScript正则表达式匹配1-4个有效罗马数字+2个西里尔字母+6位数字

JavaScript正则表达式解决方案

最终正则表达式

const regex = /^(?=[MDCLXVI]{1,4})M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})[А-Я]{2}\d{6}$/;

正则拆解

  • 罗马数字验证部分:
    • (?=[MDCLXVI]{1,4}):正向预查,确保罗马数字部分由1-4个合法罗马字符(M、D、C、L、X、V、I)组成
    • M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3}):匹配标准合法罗马数字结构,覆盖1-3999范围内的有效写法,结合预查限制字符数为1-4
  • 西里尔字母部分:[А-Я]{2}:匹配2个大写西里尔字母(注意是西里尔字符集的А到Я,而非英文A-Z)
  • 数字部分:\d{6}:匹配连续6位阿拉伯数字
  • 边界控制:^ 和 $ 确保整个字符串完全匹配,避免部分匹配

测试用例验证

  • 匹配成功:
    • XVIАА123456:罗马数字XVI(3字符,合法)+ 西里尔字母АА + 6位数字123456
    • IVАЯ123456:罗马数字IV(2字符,合法)+ 西里尔字母АЯ + 6位数字123456
  • 匹配失败:
    • XVIA:缺少西里尔字母和数字部分
    • XVI:仅包含罗马数字,缺少后续两部分
    • XVIA123456:仅1个西里尔字母,不符合2个的要求
    • XVIAA123:仅3位数字,不符合6位的要求

内容的提问来源于stack exchange,提问作者NEATweb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 09:37:50