正则表达式有助于允许完整的数字或 3 个特殊字符后跟 4 个逗号分隔的数字,没有空格

Regex expression help to allow complete digits or with 3 special characters followed by 4 digits in comma separated without spaces

正在为以下用例寻找有关正则表达式的帮助。

我的输入字段应该只允许以逗号分隔的值,或者只是数字,或者是一系列特殊字符 (*) 后跟数字。它应该能够允许以下组合:

1234,***1234,3456
***1234,***3456,12345567
1234,3456
***1234,***3456

只有数字的情况下最多可以有 10 位数字。特殊字符和数字的大小写应有 3 个星号后跟 4 个数字。

这将验证以逗号分隔的项目字符串,其中每个项目要么是最多 10 位数字,要么是三个 * 后跟一个 4 位数字:

/^(?:\d{1,10}|\*{3}\d{4})(?:,(?:\d{1,10}|\*{3}\d{4}))*$/

解释:

  • ^ - 字符串开头的锚点
  • (?: - 非捕获组开始
    • \d{1,10} - 1 到 10 位数
    • | - 逻辑或
    • \*{3}\d{4} - 三个 * 后跟 4 个数字
  • ) - 非捕获组结束
  • (?: - 非捕获组开始
    • ,(?:\d{1,10}|\*{3}\d{4}) - 一个逗号,后跟与上面相同的 ORed 模式
  • )* - 非捕获组结束,整个组有零到多次重复
  • $ - 字符串末尾的锚点