PHP:表单验证“全名”

时间:2010-08-02 09:35:33

标签: php

现在我的全名是:

if(empty($_POST['full_name']) || strlen($_POST['full_name']) < 4)
{
$errormessage[] = "ERROR.\n";
}

如何验证全名,因此输入的名称应包含空格?

如果有人输入:

  

John Andersson

没关系,但如果他进入:

  

JohnAndersson

不行,错误。所以你需要在你的全名中加上一个“空格”。

4 个答案:

答案 0 :(得分:3)

像这样:

if (strpos(trim($_POST['full_name']), ' ') !== false){
  // user has specified first and last name
}
elseif (strpos(trim($_POST['full_name']), ' ') !== true){
  // user has specified a single name
}

您需要输入trim函数来检查错误的名称,例如:

  • Justin Alba[space]
  • [space]Justin Alba
  • Justin[space]
  • [space]Justin

答案 1 :(得分:1)

你可能有两个字段,一个用于名字,一个用于姓氏。

我假设你不希望有一个名字的人填写你的表格,所以你要排除Bono,Eminem,Prince,Sting,Bjork,Enya和其他一些人。

答案 2 :(得分:1)

你可以做的是拆分字符串然后检查然后拆分字符串部分。

$nameSplit = explode(' ', $name);

if(count($nameSplit) < 2)
{

//Only one name given

}
else
{

  $firstName = trim($nameSplit[0]);
  $secondName = trim($nameSplit[1]);

  if($secondName == '')
  {

    //No second name given

  }

}

答案 3 :(得分:0)

您可以进行如下测试:

$fullName = 'JohnAndersson';

if ( ucfirst(strtolower($fullName)) != ucfirst($fullName) ) {
    echo 'It is not valid';
}

ucfirst(strtolower($fullName))会将您的字符串转换为Johnandersson,但不等于JohnAndersson,因此它应包含空格。