10個實用的PHP正規表示式

發表於2013-09-09

1. 驗證E-mail地址這是一個用於驗證電子郵件的正規表示式。但它並不是高效、完美的解決方案。在此不推薦使用。
$email="test@ansoncheung.tk";
if(preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
echo"Your email is ok.";
}else{
echo"Wrong email address format";
}
為了更加有效驗證電子郵件地址,推薦使用 filer_var 。
if(filter_var('test+email@ansoncheung', FILTER_VALIDATE_EMAIL)) {
echo"Your email is ok.";
}else{
echo"Wrong email address format.";
}
2. 驗證使用者名稱
這是一個用於驗證使用者名稱的例項,其中包括字母、數字(A-Z,a-z,0-9)、下劃線以及最低5個字元,最大20個字元。同時,也可以根據需要,對最小值和最大值做合理的修改。
$username="user_name12";
if(preg_match('/^[a-z\d_]{5,20}$/i',$username)) {
echo"Your username is ok.";
}else{
echo"Wrong username format.";
}
3. 驗證電話號碼
這是一個驗證美國電話號碼的例項。
$phone="(021)423-2323";
if(preg_match('/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x',$phone)) {
echo"Your phone number is ok.";
}else{
echo"Wrong phone number.";
}
4. 驗證IP地址
這是一個用來驗證IPv4地址的例項。
$IP="198.168.1.78";
if(preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/',$IP)) {
echo"Your IP address is ok.";
}else{
echo"Wrong IP address.";
}
5. 驗證郵政編碼
這是一個用來驗證郵政編碼的例項。
$zipcode="12345-5434";
if(preg_match("/^([0-9]{5})(-[0-9]{4})?$/i",$zipcode)) {
echo"Your Zip code is ok.";
}else{
echo"Wrong Zip code.";
}

6. 驗證SSN(社會保險號)
這是一個驗證美國SSN的例項。
$ssn="333-23-2329";
if(preg_match('/^[\d]{3}-[\d]{2}-[\d]{4}$/',$ssn)) {
echo"Your SSN is ok.";
}else{
echo"Wrong SSN.";
}
7. 驗證信用卡號
$cc="378282246310005";
if(preg_match('/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/',$cc)) {
echo"Your credit card number is ok.";
}else{
echo"Wrong credit card number.";
}
8. 驗證域名
$url="http://ansoncheung.tk/";
if(preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i',$url)) {
echo"Your url is ok.";
}else{
echo"Wrong url.";
}

9. 從特定URL中提取域名
$url="http://ansoncheung.tk/articles";
preg_match('@^(?:http://)?([^/]+)@i',$url,$matches);
$host=$matches[1];
echo$host;

10. 將文中關鍵詞高亮顯示
$text="Sample sentence from AnsonCheung.tk, regular expression has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor";
$text= preg_replace("/\b(regex)\b/i",'<span style="background:#5fc9f6">\1</span>',$text);
echo$text;
評論(1)

相關文章