首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在这段[02-98]中,如何开发带有数字的regex iban代码?

在这段[02-98]中,如何开发带有数字的regex iban代码?
EN

Stack Overflow用户
提问于 2019-11-12 09:22:49
回答 1查看 343关注 0票数 2

我想对iban创建一个具有以下特性的控件:

  • 最少14个字符
  • 最多34个字符
  • 前两个字符总是两个字母(国家标识符)。
  • 第三和第四个字符总是两位数(控制键(从02到98) )。 我试图用这样的模式在Java中开发一个简单的REGEX:
代码语言:javascript
复制
@Pattern(
    regexp = "[a-zA-Z]{2}([2-9]|[1-8][0-9]|9[0-8]){2}[a-zA-Z0-9]{4}[0-9]{6}([a-zA-Z0-9]?){0,20}", 
    message = "Le format de l'iban est invalide"
)

第三和第四字符的问题是系统不接受这些条件(10、20、30、40、50、60、70、80、90),尽管这些数字包括在02-98间隔内。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-12 11:55:26

你可以用

代码语言:javascript
复制
^[a-zA-Z]{2}(?:0[2-9]|[1-8][0-9]|9[0-8])[a-zA-Z0-9]{4}[0-9]{6}[a-zA-Z0-9]{0,20}$

([2-9]|[1-8][0-9]|9[0-8]){2}部件被(?:0[2-9]|[1-8][0-9]|9[0-8])替换。您的([2-9]|[1-8][0-9]|9[0-8]){2}匹配29之间的两次数字出现,或10到98之间的两次数字出现。因此,您需要将0添加到第一个选项中,并删除{2}量词。

regex演示

详细信息

  • ^ -字符串的开始
  • [a-zA-Z]{2} -两个ASCII字母
  • (?:0[2-9]|[1-8][0-9]|9[0-8]) - 0298之间的一个数字
  • [a-zA-Z0-9]{4} -四个ASCII字母数字字符
  • [0-9]{6} -六位数
  • [a-zA-Z0-9]{0,20} -0到20 ASCII字母数字字符
  • $ -字符串的末端。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58815543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档