正则表达式限制字符串不超过 5 个连续数字字符且总共不超过 8 个数字字符
Regex to restrict a string for no more than 5 consecutive numeric characters and no more than 8 numeric characters in total
我正在尝试构建一个正则表达式,限制一个字符串的连续数字字符不超过 5 个,并且数字字符总数不超过 8 个。
例如:
- 12345 => 正确
- 约格拉杰 => 正确
- Yograj123456 => 错误
- 12345Yograj => 正确
- 12345Yograj12345 => 正确
- Yograj123456Yograj => 假
- Yograj123Varsolkar456789 => 错误
- 123Yograj45678Varsolkar => 正确
- A1B2C3D4e5f6g7h8i9j0 => 假
- Yograj 890 Varsolkar 78455 => 错误
到目前为止,我能够创建这个:
/^((\d{0,5}[a-zA-Z]+\d{0,5})+|\d{0,5})$/
非常感谢
带有一些交替的负面前瞻可能在这里有所帮助:
^(?!.*\d{6}|(?:.*\d){9})[A-Za-z\d]+$
网上看一个demo
^
- 起点锚点。
(?!
- 打开否定前瞻:
.*\d{6}
- 除换行符外的 0+ 个字符后跟 6 位数字。
|
- 或者:
(?:.*\d){9}
- 除换行符外的 0+ 个字符的非捕获组后跟匹配 9 次的单个数字。
)
- 关闭否定前瞻。
[A-Za-z\d]+
- 匹配 1+ 个字母数字字符。
$
- 末尾锚点。
我正在尝试构建一个正则表达式,限制一个字符串的连续数字字符不超过 5 个,并且数字字符总数不超过 8 个。
例如:
- 12345 => 正确
- 约格拉杰 => 正确
- Yograj123456 => 错误
- 12345Yograj => 正确
- 12345Yograj12345 => 正确
- Yograj123456Yograj => 假
- Yograj123Varsolkar456789 => 错误
- 123Yograj45678Varsolkar => 正确
- A1B2C3D4e5f6g7h8i9j0 => 假
- Yograj 890 Varsolkar 78455 => 错误
到目前为止,我能够创建这个: /^((\d{0,5}[a-zA-Z]+\d{0,5})+|\d{0,5})$/
非常感谢
带有一些交替的负面前瞻可能在这里有所帮助:
^(?!.*\d{6}|(?:.*\d){9})[A-Za-z\d]+$
网上看一个demo
^
- 起点锚点。(?!
- 打开否定前瞻:.*\d{6}
- 除换行符外的 0+ 个字符后跟 6 位数字。|
- 或者:(?:.*\d){9}
- 除换行符外的 0+ 个字符的非捕获组后跟匹配 9 次的单个数字。)
- 关闭否定前瞻。
[A-Za-z\d]+
- 匹配 1+ 个字母数字字符。$
- 末尾锚点。