我有以下代码用于验证字母数字字符的用户输入
if (!preg_match("/^[A-Za-z][A-Za-z0-9.]*(?:_[A-Za-z0-9]+)*$/", $username)){
echo "invalid username";
}
检查输入是否包含除(A-Z)(0-9)字母数字之外的其他字符。此外,它也允许接受(_)下划线,但它应仅作为my_name
放在字符串之间,但它不接受_myname
或myname_
。
我的问题是如何在上面的代码中添加一个点(。)字符,与下划线中的约束相同,如Eg accept(my.name)或(myn.ame)等但不接受(。 myname)(myname。)
答案 0 :(得分:2)
我认为这种模式适合你
$string = 'my_nam.e';
$pattern = '/^[a-z]+([a-z0-9._]*)?[a-z0-9]+$/i';
if ( ! preg_match($pattern, $string))
{
echo 'invalid';
}