[英]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!";
}
你的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.