我正在努力确保当用户注册时他们使用特定的一系列字符。在我的情况下,我希望他们输入类似“d1111111”的东西,所以我希望它总共是8个字符,并以字母d小写或大写开头,以允许其他7个字符为0到9之间的数字。感谢,谢谢。
这是我目前的代码
$regex = '/[d][0-9]{8}/';
if(preg_match($regex, $username)){
echo "Valid";
} else {
echo "not a valid username";
}
答案 0 :(得分:5)
使用例如
$regex = '/^[dD][0-9]{7}$/';
或
$regex = '/^d\d{7}$/i';
character class […]
与单字符匹配,[dD]
因此与字母d
或 {{匹配1}}。
或者,您可以在表达式的末尾使用D
选项(也称为修饰符),以使正则表达式不区分大小写。我也可以change the mode inside the expression,我个人从未使用过它。
i
匹配任何数字,与\d
相同。 [0-9]
表示要匹配的位数。
您需要{7}
和^
以确保正则表达式与整个用户名匹配。
特别是PHP,请参阅PHP's PCRE docs。
答案 1 :(得分:1)
你的正则表达式错了。首先,不需要字符类来捕获d
。只需一个文字d
以及字符串开头锚^
。
现在我们希望剩余的 7
字母为数字。所以它将跟随字符串结尾锚$
$regex = '/^d\d{7}$/'