Php 在正则表达式中使用if条件的正确方法是什么

Php 在正则表达式中使用if条件的正确方法是什么,php,regex,Php,Regex,我一直在尝试使用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变量包含名字和姓

我一直在尝试使用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变量包含名字和姓氏。我一直在努力使这项工作,但我一直无法获得与正则表达式匹配的输入。我是正确地使用它还是需要以另一种方式输入它。感谢您的帮助

如果名称是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

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


如果名称是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

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


如果你只想用一个空格分隔两个单词,这将满足你的要求:
如果(preg_match('/^[A-Za-z]+[A-Za-z]+$/',$name))
如果你只想用一个空格分隔两个单词,这将满足你的要求:
如果(preg_match('/^[A-Za-z]+$/,$name))
谢谢大家的回复,我在最明显的地方找到了答案,但这与正则表达式无关。我忘了正确设置变量,以便在与表单相同的页面上使用它们。愚蠢的错误。无论如何,再次感谢大家。

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

为什么要“取决于国家”?你认为所有波兰人都有小写的名字吗?为什么?因为在不同的国家,名字条件可能不同,例如在荷兰,你的名字是“Rafael Ferdinand van der Vaart”,或者在一些北美国家,名字是“jose francisco cevallos enriquez”,这在波兰是不正确的。为什么不允许jose住在波兰?范德法特不住在德国吗?哈哈哈,另一个搞笑的评论:D哈哈哈,我爱这个中国男人,即使他被允许住在波兰,你会写reg exp来验证他的名字吗?不要走极端。为什么要“依赖国家”?你认为所有波兰人都有小写的名字吗?为什么?因为在不同的国家,名字条件可能不同,例如在荷兰,你的名字是“Rafael Ferdinand van der Vaart”,或者在一些北美国家,名字是“jose francisco cevallos enriquez”,这在波兰是不正确的。为什么不允许jose住在波兰?范德法特不住在德国吗?哈哈哈,另一个搞笑的评论:D哈哈哈,我爱这个中国男人,即使他被允许住在波兰,你会写reg exp来验证他的名字吗?不要走极端。如果这是你的名字,那么这段代码将确保你没有键入任何数字。我只需要检查一下,确保没有数字添加到名字中,这是一个类赋值。如果这是你的名字,然后这段代码会确保你没有输入任何数字。我只需要检查以确保没有数字添加到名称中,这是用于类赋值的。