正则表达式匹配不同数字和最小长度的数字

时间:2017-11-20 23:32:09

标签: javascript .net regex regex-negation regex-group

我正在尝试编写一个正则表达式(用于验证ac#.NET Core模型上的属性,生成javascript表达式)以匹配由至少两个不同数字和最小长度为6位组成的所有数字。

例如:

222222 - 无效

122222 - 有效

1111125 - 有效

我正在尝试以下表达式:(\d)+((?!\1)(\d)),如果有不同的数字,则匹配序列但是如何将整个模式的大小限制为{6,}

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以使用

^(?=\d{6})(\d)\1*(?!\1)\d+$

请参阅regex demo

<强>详情

  • ^ - 字符串开头
  • (?=\d{6}) - 至少6位数
  • (\d) - 任何数字都会被捕获到第1组
  • \1* - 在第1组中捕获的值出现零次或多次
  • (?!\1) - 下一个数字不能与第1组相同
  • \d+ - 1 +位数
  • $ - 字符串结束。