PHP preg_match和regex:仅使用连字符、数字或字母以及至少6个字符的小写字母?
我只想接受带有连字符、数字或字母以及至少6个字符的小写字母的输入。但只要输入长度超过6个字符,下面的正则表达式就接受大写PHP preg_match和regex:仅使用连字符、数字或字母以及至少6个字符的小写字母?,php,regex,preg-match,lowercase,Php,Regex,Preg Match,Lowercase,我只想接受带有连字符、数字或字母以及至少6个字符的小写字母的输入。但只要输入长度超过6个字符,下面的正则表达式就接受大写 $user_name = 'BloggerCathrin'; if(!preg_match('/([a-z0-9]{6}|[a-z0-9\-]{6})/', $user_name)) { echo 'please use lowercaps only, either with hyphens, numbers, or alphabets, and at least
$user_name = 'BloggerCathrin';
if(!preg_match('/([a-z0-9]{6}|[a-z0-9\-]{6})/', $user_name))
{
echo 'please use lowercaps only, either with hyphens, numbers, or alphabets, and at least 6 characters.';
}
如何修复此问题?在开始处使用
^
锚定字符串,在结束处使用$
锚定字符串
"/^[a-z0-9-]{6,}$/"
以
^
开头和$
结尾锚定字符串
"/^[a-z0-9-]{6,}$/"
如果模式需要从头到尾匹配整个字符串,则需要将其包装在
^
和$
中:
/^([a-z0-9]{6}|[a-z0-9\-]{6})$/
start -´ `- end
发件人:
^
-断言主题的开头(或多行模式下的行)$
-断言主题结尾或在终止换行符之前(或多行模式下的行结尾)
如果您至少有六个字符(也可以压缩),则您的模式可能如下所示:
/^[a-z0-9-]{6,}$/
```- minimum: 6, maximum: unspecified (empty)
如果模式需要从头到尾匹配整个字符串,则需要将其包装在
^
和$
中:
/^([a-z0-9]{6}|[a-z0-9\-]{6})$/
start -´ `- end
发件人:
^
-断言主题的开头(或多行模式下的行)$
-断言主题结尾或在终止换行符之前(或多行模式下的行结尾)
如果您至少有六个字符(也可以压缩),则您的模式可能如下所示:
/^[a-z0-9-]{6,}$/
```- minimum: 6, maximum: unspecified (empty)
你可以参加部分比赛。如果需要从头到尾匹配整个字符串,请使用
/^…$/
。可以进行部分匹配。如果您需要从开始到结束匹配整个字符串,请使用/^…$/
。如果我正确回答您的问题,您还需要更改模式。/^([a-z0-9]{6}|[a-z0-9\-]{6})$/
只需要6个字符,我需要6个以上的字符。@lauthiamkok:Refresh,您应该会看到一个编辑,这正是我的意思。如果我没弄错你的问题,你也需要改变你的模式。/^([a-z0-9]{6}|[a-z0-9\-]{6})$/
只需要6个字符,我需要6个以上…@lauthiamkok:刷新,你应该看到一个编辑,这正是我的意思。