目标: 我正在尝试创建一个更有效的正则表达式,以灵活地捕获SEPA库号以进行表单验证。
背景 SEPA IBAN号码具有以下模式:NL88ABNA1234567890
我的问题与最后的9或10个数字有关,例如0123456789。 我希望允许空格字符和短划线的任意组合,因为数字在提交之前已经消毒,例如: -
我可以通过以下方式实现这一目标: -
(\d(?:\s[\s-]\s|[\s-])?\d(?:\s[\s-]\s|[\s-])?\d(?:\s[\s-]\s|[\s-])?\d(?:\s[\s-]\s|[\s-])?\d(?:\s[\s-]\s|[\s-])?\d(?:\s[\s-]\s|[\s-])?\d(?:\s[\s-]\s|[\s-])?\d(?:\s[\s-]\s|[\s-])?\d(?:\s[\s-]\s|[\s-])?\d?)
但它不是很优雅
我尝试将捕获组与量词组合,但它只返回最后一位数: -
(\d(?:\s?[\s-]\s?)?){9,10}
如何更有效地实现这一目标&检查整数不仅仅是最后一位数?
答案 0 :(得分:1)