如何使用preg_match检查表单帖子中只包含多个字段上的字母?

2022-03-29 00:00:00 validation php preg-match

我有一个当前的代码,它允许我检查注册表中的用户名字,以确保它只包含字母、空格和破折号。但是,如何启用多个字段(例如,姓氏也是)的检查。

/* Checks if the first name only includes letters, dashes or spaces */
   if(preg_match("/^[a-zA-Z -]+$/", $_POST['firstname']) == 0)
        $errors .="Your name must only include letters, dashes, or spaces.";

我尝试了以下选项,但似乎只选中其中一个,而不是两个都选中。

  if(preg_match("/^[a-zA-Z -]+$/", $_POST['firstname'], $_POST['lastname']) == 0)

还有:

if(preg_match("/^[a-zA-Z -]+$/", $_POST['firstname'] and $_POST['lastname']) == 0)

提前感谢您的建议。


解决方案

由于这两个字段将使用相同的正则表达式进行验证,并且您不希望返回任何关于哪一个(如果有)失败的具体反馈,因此只需连接这两个字符串。

if(preg_match("/^[a-zA-Z -]+$/", $_POST['firstname'] . $_POST['lastname']) == 0)

相关文章