1

我一直在尝试使用 PHP 中的正则表达式来验证输入是名字和姓氏的表单。我需要正则表达式做的就是检查以确保没有数字。这就是我现在所拥有的:

if (preg_match('/\A\b[^0-9]*\W[^0-9]*\b\Z/sm', $name)) {
# Successful match
$nameError = "";
echo $name;
} else {
# Match attempt failed\
$nameError = "No Numbers";
}

$name 变量保存名字和姓氏。我一直在尝试完成这项工作,但我无法获得与正则表达式匹配的输入。我是正确使用它还是需要以其他方式输入它。谢谢您的帮助

4

3 回答 3

1

如果 name 是 surename 和 first name,则应根据国家/地区使用条件,例如在波兰

preg_match('/[a-z]+ [a-z]+/i',$name); 

这意味着所有包含两个部分的名称都是好的,这些部分是字母并用空格隔开。如果你想让名字的第一个字母在上面,你应该把它改成

preg_match('/[A-Z][a-z]+ [A-Z][a-z]+/',$name); 

如果 $name 由您在第一个参数中提供的正则表达式验证,则 Preg_match 返回 true。

所以你对这个函数的使用是可以的,你应该检查你的表达。

http://pl1.php.net/preg_match

如果模式匹配给定的主题,preg_match() 返回 1,如果不匹配,则返回 0,如果发生错误,则返回 FALSE。

例如,您可以随时在在线检查器上检查您的正则表达式

http://www.solmetra.com/scripts/regex/

于 2013-05-06T10:53:32.083 回答
0

如果您只想用一个空格分隔两个单词,这将满足您的要求:if (preg_match('/^[A-Za-z]+ [A-Za-z]+$/', $name))

于 2013-05-06T10:55:20.177 回答
0

谢谢大家的回复,虽然我在最明显的地方找到了答案,但它与正则表达式没有任何关系。我忘记正确设置变量以便在与表单相同的页面上使用它们。愚蠢的错误。无论如何,再次感谢你。

于 2013-05-08T02:31:26.673 回答