我想对iban创建一个具有以下特性的控件:
@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间隔内。
发布于 2019-11-12 11:55:26
你可以用
^[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}匹配2和9之间的两次数字出现,或10到98之间的两次数字出现。因此,您需要将0添加到第一个选项中,并删除{2}量词。
详细信息
^ -字符串的开始[a-zA-Z]{2} -两个ASCII字母(?:0[2-9]|[1-8][0-9]|9[0-8]) - 02到98之间的一个数字[a-zA-Z0-9]{4} -四个ASCII字母数字字符[0-9]{6} -六位数[a-zA-Z0-9]{0,20} -0到20 ASCII字母数字字符$ -字符串的末端。https://stackoverflow.com/questions/58815543
复制相似问题