需要使用php进行用户名验证的正则表达式

时间:2016-01-17 17:30:37

标签: php regex

我需要使用核心php进行用户名验证的最佳正则表达式。我得到了很多表达,但没有一个能够奏效。

  • 必须以字母
  • 开头
  • 6-32个字符
  • 必须至少为1个数字

主要问题是用户名存在且没有插入号码。我需要使用上面提到的表达式来处理用户名。

2 个答案:

答案 0 :(得分:3)

您可以使用preg_match

进行积极的预测
preg_match("/^(?=[A-Za-z])(?=.*\d)(?=.*[A-Z])(?=.*[a-z]).{6,32}/", $username);

(?=.*\d)将验证至少有一位数。

(?=.*[A-Z])验证至少有一个大写字符。

(?=.*[a-z])验证至少有一个小写字符。

.{6,32}验证字符串长度在6-32个字符之间。

答案 1 :(得分:0)

这个怎么样

$\S*(?=\S{6,})(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])\S*$

您可以按照以下示例进行试用     

$username='Abc123';
$opt=array();

if (preg_match_all('$\S*(?=\S{6,})(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])\S*$',$username ,$opt))
{
   echo 'true';             
}   
else 
{
   echo 'fail';
}