我一直在尝试验证一个表单,其中输入是使用PHP中的regex的名字和姓氏。我需要正则表达式做的就是检查以确保没有数字。这就是我现在所拥有的:
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变量包含名字和姓氏。我一直在尝试使这项工作,我无法得到输入以匹配正则表达式。我是正确使用它还是我需要以其他方式输入它。谢谢你的帮助
答案 0 :(得分: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。
所以你对这个函数的使用是可以的,你应该检查一下你的表达。
如果模式与给定主题匹配,则preg_match()返回1,否则返回0;如果发生错误,则返回FALSE。
您可以随时在在线检查器上查看正则表达式,例如
答案 1 :(得分:0)
如果你只想要用一个空格分隔两个单词,这可以做你想做的事:if (preg_match('/^[A-Za-z]+ [A-Za-z]+$/', $name))
答案 2 :(得分:0)
谢谢大家的回复,我在最明显的地方找到了答案,但它与正则表达式没有任何关系。我忘了正确设置变量,以便在与表单相同的页面上使用它们。愚蠢的错误。无论如何,再次感谢你。