我正在开发一个正则表达式来验证一个字符串,
- 包含字母数字值
- 连续包含相同字符的次数不超过4次(如aaaaa或222222)
- 总长度应在6到15之间
我使用以下regex,但它不适用于输入=>String1bbbbb
/^(?=.*[a-z])(?='S*[A-Z])(?='S*[0-9])(?!.*['w{4,}])[a-zA-Z0-9]{6,15}+$/i
if(preg_match('/^(?=.*[a-z])(?='S*[A-Z])(?='S*[0-9])(?!.*['w{4,}])[a-zA-Z0-9]{6,15}+$/i', $string)) {
echo "Valid String";
} else {
echo "invalid String";
}
使用负面前瞻来验证相同的字符,如下面的
(?!.*[''w{4,}])
如有任何帮助,我们将不胜感激。
您可以使用以下正则表达式:
^(?=.{6,15}$)(?:([A-Za-z0-9])'1{0,3}(?!'1))+$
这将确保长度在6到15之间,它将捕捉角色,可能会再重复3次,然后它将确保相同的角色不会在下一个位置再次重复。在regex101中有它:https://regex101.com/r/aO7pM5/1