【发布时间】:2022-07-21 18:56:22
【问题描述】:
我正在创建一个当前运行良好的 IBAN 检查器:它识别前 2 个字符(例如 DE 或 GB)并根据匹配的国家/地区代码检查特定的 IBAN 结构(DE 后仅跟数字,而 GB 有一个那里某处的一些字母)。所以这些东西都得到了很好的检查。
这里是没有后备的工作代码:https://regex101.com/r/HqThjy/1
^(?:GB\d{2}[A-Z]{4}\d{14}|DE\d{20})$
this matches:
DE12312341212312312312
GB12ASDF12312312312311
但我想集成一个后备选项,以在我想要特别检查的指定国家/地区(让我们坚持使用 DE 和 GB)匹配时,例如使用代码 NO 的挪威。我目前的后备想法以 ELSE 条件结束我的示例,但这也匹配错误的 DE 和 GB 字符串:https://regex101.com/r/HqThjy/3
^(?:GB\d{2}[A-Z]{4}\d{14}|DE\d{20})|[A-Z]{2}(?:[A-Z]|\d){13,}$
this matches:
DE12312341212312312312
GB12ASDF12312312312311
NO1212121212121
DE1231234121231 <- should not be a match
GB1231231231231 <- should not be a match
有没有办法告诉正则表达式,如果它不匹配“DE 或 GB”然后检查任何东西,但不是 DE/GB?
【问题讨论】:
标签: javascript regex