-2

我想获得一些关于 PHP 的帮助。假设我有一个字符串 ($fullname)。我想验证它是“Firstname_Lastname”的形式。例如,确保它是“Nathan_Phillips”而不是“Nathan Phillips”或“Nathan122”等。你们能帮我解决这个问题吗?

提前致谢!:-)

------------ 编辑 ------------- 谢谢你们!设法做到了。还添加了数字过滤器。这是功能:

function isValidName($name)
{
    if (strcspn($name, '0123456789') != strlen($name))
        return FALSE;
    $name = str_replace(" ", "", $name);
    $result = explode("_", $name);
    if(count($result) == 2)
        return TRUE;
    else
        return FALSE;
}

使用示例:

if(isValidName("Test_Test") == TRUE)
    echo "Valid name.";
else
    echo "Invalid name.";

再次感谢!

4

1 回答 1

2

也许尝试这样的事情:

function checkInput($input) {
    $pattern = '/^[A-Za-z]{2,50}_[A-Za-z]{2,50}/';
    return preg_match($pattern, substr($input,3), $matches, PREG_OFFSET_CAPTURE);
}

这将接受包含 2-50 个字母字符、后跟下划线和 2-50 个字母字符的字符串。

我不是最擅长正则表达式的人,所以如果有人看到缺陷,我会邀请更正。

如果您有特殊字符(èí等),我给出的正则表达式可能不会接受它。此外,它不接受O'Reilly之类的名称或带连字符的名称。看到这个:

名称的正则表达式

我将让您追踪名称正则表达式的所有例外情况,但我绝对认为正则表达式是要走的路。

于 2012-10-30T19:08:32.313 回答