我想得到一些关于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.";
再次感谢!
答案 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 或带连字符的名称等名称。见:
我会让你跟踪名称的正则表达式的所有例外,但我绝对认为正则表达式是可行的。