如何使用PHP的preg_match来验证字符串?

时间:2009-06-22 22:34:25

标签: php regex validation preg-match

请告诉我如何在PHP的preg_match函数中使用用于表达式匹配的各种符号。

除基本信息外,请举例说明检查有效电子邮件地址和不应包含/的字符串; {} *&

5 个答案:

答案 0 :(得分:2)

简单示例..验证$ var,它是一个字符串,用于验证和检查(a到z和A到Z)字符。

<?php
$var = 'hello';
if (ereg("[a-zA-Z]", $var)) {
  echo 'it was typed correctly';
} else {
  echo 'it was not typed correctly';
}
?>

更多正则表达式语法示例:http://www.regexlib.com/

编辑:

if (ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)) {

  echo 'email ok';

} else {

  echo 'email not ok';

}

问候。

答案 1 :(得分:1)

Jeff Atwood最近有一篇关于正常表达的coding horror blog文章。查看“Regular Expressions for Regular Programmers”。

答案 2 :(得分:0)

要检查有效邮件,您可以使用内置功能(filter_var()/FILTER_VALIDATE_EMAIL),也可以使用符合当前RFC的可立即使用的库。 PHP : Parsing Email Adresses in PHP。有关preg_match()的示例,您可以访问php网站,Wikipedia上提供完整列表正则表达式选项。要了解正则表达式,我建议使用“The Regex Coach”。

答案 3 :(得分:0)

我知道问题是关于PHP的,但我的目的是说明电子邮件地址验证的复杂性:要检查电子邮件地址是否符合RFC 2822,您可以使用Perl模块Email::Address。请查看该模块的来源以及RFC。

答案 4 :(得分:0)

如果我给$ var ='hello87%^ $'也返回“它输入正确”;