目标: 我正在尝试创建一个更有效的正则表达式来灵活捕获 SEPA 银行号码以进行表单验证。
背景: SEPA IBAN 号码具有以下模式:NL88ABNA1234567890
我的问题是关于最后的最后 9 或 10 个数字,例如0123456789。 我想允许空格字符和破折号的任意组合,因为在提交之前会对数字进行清理,例如:-
- 0123456789
- 01-23-45-67-89
- 01 23 45 67 89
- 01 - 23 - 45 - 67 - 89
- 012 345 67 89
- 等等等等
我可以通过以下方式实现这一目标:-
(\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}
如何更有效地实现这一点并检查整个数字而不仅仅是最后一位数字?
最佳答案
关于javascript - 将捕获组与 SEPA 银行编号的量词相结合的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35539075/