繁体   English   中英

PHP - 验证注册表单

[英]PHP - Validating a registration form

如何使用php验证第一个名称仅包含az字符。 我现在有以下内容:

 if (empty($myFirstName)) {
    echo "<p>Please enter your first name!</p>";
else if(!preg_match("/^[a-zA-Z]$/", $myFirstName)){
    echo "Your first name can only contain letters!";
}

这是一个有效的代码:

if (empty($myFirstName)) {
    echo "<p>Please enter your first name!</p>";}

else if(preg_match("/[^a-zA-Z]/", $myFirstName)){
    echo "Your first name can only contain letters!";
}

我对正则表达式进行了一些修改:我在组中添加了^ ,并删除了锚点。

因此,您的正则表达式将匹配任何非字母的字符,并在匹配时显示错误消息。

我强烈建议您至少在服务器端验证用户输入,如果需要,请在客户端验证用户输入。

对于电子邮件验证,html过滤器适用于客户端。

在服务器端,您可以使用预先设置的PHP过滤器:

if(filter_var($email, FILTER_VALIDATE_EMAIL)){
    echo "email OK";
}

仅供参考,根据RFC2822标准,有一个正则表达式匹配的电子邮件:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

可能你可以使用

if(! ctype_alpha($myFirstName) )
{
  //check for alphabetic inputs only
  echo "Your first name can only contain letters!";
}

Php手册

你的if不正确。

!preg_match("/^[a-zA-Z]$/", $myFirstName)

只有$myFirstName not a single alpha character才会成立

要确保$myFirstName not any number of alpha characters ,请尝试

!preg_match("/^[a-zA-Z]*$/", $myFirstName)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM