javascript - 将捕获组与 SEPA 银行编号的量词相结合的正则表达式

标签 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
  • 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}

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

最佳答案

您可以将此正则表达式与数字后面的可选空格和连字符一起使用:

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

[\s-]* 每个数字后允许有 0 个或多个空格和连字符。

RegEx Demo

关于javascript - 将捕获组与 SEPA 银行编号的量词相结合的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35539075/

相关文章:

javascript - 将 aspx 加载到 div : wrong path

javascript - 正则表达式删除字母,数字以外的符号

javascript - react 路由器: component not rendering after login

javascript - 替换数据 block 中的多个模式

python - 条件正则表达式 - 注意错误

python - 使用 Python2 的正则表达式中的 Unicode 类

c# - 查找/编辑文件中的确切条目

javascript - 语义 UI React 项目图像作为链接

javascript - npm-EPERM mkdir : operation not permitted on Windows

javascript - HTML 5 Canvas 以相同的速度在定义的线上移动圆圈