Maison > Article > développement back-end > 正则表达式的Wed验证应用(40),正则表达式wed_PHP教程
<?<span>php </span><span>/*</span><span> 校验邮件地址</span><span>*/</span><span> function checkMail($email) { </span><span>//</span><span>用户名,由“\w”格式字符、“-”或“.”组成</span> $email_name= <span>"</span><span>\w|(\w[-.\w]*\w)</span><span>"</span><span>; </span><span>//</span><span>域名中的第一段,规则和用户名类似,不包括点号“.”</span> $code_at= <span>"</span><span>@</span><span>"</span><span>; $per_domain</span>= <span>"</span><span>\w|(\w[-\w]*\w)</span><span>"</span><span>; </span><span>//</span><span>域名中间的部分,至多两段</span> $mid_domain= <span>"</span><span>(\.</span><span>"</span> .$per_domain. <span>"</span><span>){0,2}</span><span>"</span><span>; </span><span>//</span><span>域名的最后一段,只能为“.com”、“.org”或“.net”</span> $end_domain= <span>"</span><span>(\.(com|net|org))</span><span>"</span><span>; $rs</span>=<span> preg_match( </span><span>"</span><span>/^{$email_name}@{$per_domain}{$mid_domain}{$end_domain}$/</span><span>"</span><span>, $email ); </span><span>return</span> (<span>bool</span><span>)$rs; } </span><span>//</span><span>测试,下面均返回成功</span> var_dump( checkMail(<span>"</span><span>root@localhost</span><span>"</span><span>) ); var_dump( checkMail(</span><span>"</span><span>Frank.Roulan@esun.edu.org</span><span>"</span><span>) ); var_dump( checkMail(</span><span>"</span><span>Tom.024-1234@x-power_1980.mail-address.com</span><span>"</span><span>) ); </span>?>
<?<span>php </span><span>/*</span><span> 校验URL地址</span><span>*/</span><span> function checkDomain($domain) { </span><span>return</span> ereg(<span>"</span><span>^(http|ftp)s? ://(www\.)?.+(com|net|org)$</span><span>"</span><span>, $domain); } $rs</span>= checkDomain(<span>"</span><span>www.taodoor.com</span><span>"</span>);<span>//</span><span>返回假</span> $rs= checkDomain(<span>"</span><span>http://www.taodoor.com</span><span>"</span>);<span>//</span><span>返回真</span> ?>
<?<span>php </span><span>/*</span><span> 校验电话号码</span><span>*/</span><span> function checkTelno($tel) { </span><span>//</span><span>去掉多余的分隔符</span> $tel= ereg_replace(<span>"</span><span>[\(\)\. -]</span><span>"</span>, <span>""</span><span>, $tel); </span><span>//</span><span>仅包含数字,至少应为一个6位的电话号(即没有区号)</span> <span>if</span>(ereg(<span>"</span><span>^\d+$</span><span>"</span><span>, $tel)) { </span><span>return</span> <span>true</span><span>; }</span><span>else</span><span>{ </span><span>return</span> <span>false</span><span>; } } $rs</span>= checkTelno(<span>"</span><span>(086)-0411-12345678</span><span>"</span>);<span>//</span><span>返回真</span> ?>
<?<span>php </span><span>/*</span><span> 校验邮政编码</span><span>*/</span><span> function checkZipcode($code) { </span><span>//</span><span>去掉多余的分隔符</span> $code = preg_replace(<span>"</span><span>/[\. -]/</span><span>"</span>, <span>""</span><span>, $code); </span><span>//</span><span>包含一个6位的邮政编码</span> <span>if</span>(preg_match(<span>"</span><span>/^\d{6}$/</span><span>"</span><span>, $code)) { </span><span>return</span> <span>true</span><span>; }</span><span>else</span><span>{ </span><span>return</span> <span>false</span><span>; } } $rs</span>= checkZipCode(<span>"</span><span>123456</span><span>"</span>);<span>//</span><span>返回真</span> ?>