PHP字符串验证 - Firstname_Lastname

时间:2012-10-30 18:52:15

标签: php

我想得到一些关于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.";

再次感谢!

1 个答案:

答案 0 :(得分: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 或带连字符的名称等名称。见:

Regex for names

我会让你跟踪名称的正则表达式的所有例外,但我绝对认为正则表达式是可行的。