正則表達式的Wed驗證應用(40),正則表達式wed
電子郵件地址的校驗
<?php
/* 校驗郵件地址*/
function checkMail($email) {
//用戶名,由“\w”格式字符、“-”或“.”組成
$email_name= "\w|(\w[-.\w]*\w)";
//域名中的第一段,規則和用戶名類似,不包括點號“.”
$code_at= "@";
$per_domain= "\w|(\w[-\w]*\w)";
//域名中間的部分,至多兩段
$mid_domain= "(\." .$per_domain. "){0,2}";
//域名的最後一段,只能為“.com”、“.org”或“.net”
$end_domain= "(\.(com|net|org))";
$rs= preg_match(
"/^{$email_name}@{$per_domain}{$mid_domain}{$end_domain}$/",
$email
);
return (bool)$rs;
}
//測試,下面均返回成功
var_dump( checkMail("root@localhost") );
var_dump( checkMail("[email protected]") );
var_dump( checkMail("Tom.024-1234@x-power_1980.mail-address.com") );
?>
URL地址的校驗
<?php
/* 校驗URL地址*/
function checkDomain($domain)
{
return ereg("^(http|ftp)s? ://(www\.)?.+(com|net|org)$", $domain);
}
$rs= checkDomain("www.taodoor.com");//返回假
$rs= checkDomain("http://www.taodoor.com");//返回真
?>
電話號碼
<?php
/* 校驗電話號碼*/
function checkTelno($tel)
{
//去掉多余的分隔符
$tel= ereg_replace("[\(\)\. -]", "", $tel);
//僅包含數字,至少應為一個6位的電話號(即沒有區號)
if(ereg("^\d+$", $tel))
{
return true;
}else{
return false;
}
}
$rs= checkTelno("(086)-0411-12345678");//返回真
?>
郵政編碼的校驗
<?php
/* 校驗郵政編碼*/
function checkZipcode($code)
{
//去掉多余的分隔符
$code = preg_replace("/[\. -]/", "", $code);
//包含一個6位的郵政編碼
if(preg_match("/^\d{6}$/", $code))
{
return true;
}else{
return false;
}
}
$rs= checkZipCode("123456");//返回真
?>