1

我想检查在此输入中的名字之后是否至少插入了一个数字。

因此,如果用户输入“joe”,它不会验证,但“joe d”或“joe doe”它会通过。

如何才能做到这一点?

$nome = $this->coalesce($form['nome']);
if (strlen($nome) > 0)
    $this->setValue('nome', strtoupper($nome));
else
    $this->addError('nome', 'Invalid name!');
4

2 回答 2

2

您可以使用正则表达式来执行此操作:

if( preg_match( '/\w+ \w+/', $name)) {
    echo "Validation passes!";
} else { 
    echo "Invalid input";
}

您可以将正则表达式更改为'/[A-Za-z]+ [A-Za-z]+/',因为\w将匹配的不仅仅是字母字符(它包括数字和下划线)。

于 2012-05-08T19:53:42.540 回答
0

应该这样做:

if(!preg_match('/[a-z]+\s+[a-z]+/i', $nome)) {
    $this->addError('nome', 'Invalid name!');
}

这将验证由一串字母字符组成的名称,后跟一个空格,然后是另一个字母字符串。

于 2012-05-08T19:53:34.603 回答