繁体   English   中英

用preg_match验证字符串

[英]verify string with preg_match

我有一个问题,对你们所有人来说似乎很简单,但无法真正理解。 直到现在都遇到警告。

我可以知道如何接受一个字符串,该字符串的整数为0-9和alpha a-zA-Z,但带有preg_match至少5个字符,最多15个字符。 谢谢

尝试这个:

preg_match('/^[0-9a-zA-Z]{5,15}$/D', $str)

这里的^标记字符串的开始和$的结尾( D修饰符是让$仅匹配行的结尾而没有结尾的换行符)。 这意味着整个字符串必须通过模式[0-9a-zA-Z]{5,15}进行匹配,该模式描述字符类别[0-9a-zA-Z]的5到15个字符的序列。

您在发帖中说

我怎样才能接受具有0-9整数 alpha a-zA-Z的字符串,但是

如果该AND是一个字母,并且显示“字母&&数字”,则情况会变得更加复杂:

 ...

 $nd = preg_match_all('/\d/', $text, $m);        # count numbers
 $na = preg_match_all('/[a-zA-Z]/', $text, $m);  # count characters
 $nn = $na + $nd;                                # must be like strlen($text)

 if($nn==strlen($text) && $nn>=5 && $nn<=15 && $na && $nd)
    echo "$text ok";
  else
    echo "$text not ok";

 ...

问候

机器人

请改用此方法,我已经在我的网站上将其作为垃圾邮件过滤器进行了测试。

if (!preg_match("/^[0-9a-zA-Z]{5,80}$/D", "$name")) 
{
die("Error Occured : Please Enter Your Name Before Attempting to Send Message");
}

暂无
暂无

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

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