我的客户要求我在他的网站登录用户名中添加新规则。因此,我尝试了以下代码。
$userid = "12345678SM"; //format of the username
$check="/^[0-9]+[S].[M]{10}$/i";
$check2="/^[0-9]+[F].[M]{10}$/i";
print($name);
if(!preg_match($check,$userid) || !preg_match($check2,$userid)) {
print('The user id is invalid');
}
但是,即使我输入了正确的用户名格式,也会打印错误。我实际上有时曾使用过这段代码而且工作过但在这里我不明白为什么它不起作用。有人可以帮我解决这个问题吗?
仅供参考:用户名格式应为7位数字和2个选定的字母字符,例如:SM或FM
答案 0 :(得分:3)
[M]{10}
表示需要10 M。
正确的检查是:
$check="/^\d{7}[SF]M$/i";
if (!preg_match($check, $userid)) {
print('The user id is invalid');
}
答案 1 :(得分:1)
“[M]{10}
”部分匹配“MMMMMMMMMM”。
您可以使用
^[0-9]{8}[S|F]M$
你也说过
$ userid =“12345678SM”; ( 8位)
但
用户名的格式应为 7位和2个选定的字母字符
我的例子适用于8。