1

我有以下代码用于验证用户输入的字母数字字符

if (!preg_match("/^[A-Za-z][A-Za-z0-9.]*(?:_[A-Za-z0-9]+)*$/", $username)){
echo "invalid username";
}

它检查输入是否包含除 (AZ) (0-9) 字母数字以外的其他字符。此外,它还允许接受 (_) 下划线,但它应该只放在字符串之间作为my_name,但它不会接受_mynameor myname_

我的问题是如何在上面的代码中添加一个点(。)字符,与下划线中的约束相同,例如接受(my.name)或(myn.ame)等,但不接受(.myname)(myname。)

4

1 回答 1

2

我认为这种模式应该适合你

$string = 'my_nam.e';
$pattern = '/^[a-z]+([a-z0-9._]*)?[a-z0-9]+$/i';
if ( ! preg_match($pattern, $string))
{
    echo 'invalid';
}
于 2013-06-16T07:06:22.560 回答