Javascript 用于SEPA银行编号的结合捕获组和量词的正则表达式

Javascript 用于SEPA银行编号的结合捕获组和量词的正则表达式,javascript,regex,Javascript,Regex,目标: 我正在尝试创建一个更高效的正则表达式,以灵活地捕获SEPA银行编号进行表单验证 背景: SEPA IBAN编号有以下模式:NL88ABNA1234567890 我的问题是关于结尾的最后9或10个数字,例如0123456789。 我希望允许空格字符和破折号的任意组合,因为数字在提交前已清理,例如:- 0123456789 01-23-45-67-89 01 23 45 67 89 01-23-45-67-89 0123456789 等等 我可以通过以下方式实现这一目标:- “代码”主要

目标: 我正在尝试创建一个更高效的正则表达式,以灵活地捕获SEPA银行编号进行表单验证

背景: SEPA IBAN编号有以下模式:NL88ABNA1234567890

我的问题是关于结尾的最后9或10个数字,例如0123456789。 我希望允许空格字符和破折号的任意组合,因为数字在提交前已清理,例如:-

  • 0123456789
  • 01-23-45-67-89
  • 01 23 45 67 89
  • 01-23-45-67-89
  • 0123456789
  • 等等
我可以通过以下方式实现这一目标:- “代码”主要是以下两种不同的组织(以下两种不同的组织(以下两种不同的幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸幸(:\ s[\s-]\s |[\s-])?\d?

但它不是很优雅

我尝试将捕获组与量词组合,但它只返回最后一个数字:-

(\d(?:\s?[\s-]\s?){9,10}


如何才能更有效地实现这一点&检查整数而不仅仅是最后一位数字?

您可以在数字后面使用带有可选空格和连字符的正则表达式:

/((?:\d[\s-]*){9,10})/
[\s-]*
将允许在每个数字后使用0个或更多空格和连字符