10個實用的PHP正則表達式匯總

正則表達式是程序開發中一個重要的元素,它提供用來描述或匹配文本的字符串,如特定的字符、詞或算式等。但在某些情況下,用正則表達式去驗證一個字符串比較復雜和費時。本文為你介紹10種常見的實用PHP正則表達式的寫法,希望對你的工作有所幫助。

  1. 驗證E-mail地址

  這是一個用于驗證電子郵件的正則表達式。但它并不是高效、完美的解決方案。在此不推薦使用。

123456789$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 addressformat";}

  為了更加有效驗證電子郵件地址,推薦使用filer_var。

123456if?(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個字符。同時,也可以根據需要,對最小值和最大值做合理的修改。

12345678 $username?=?"user_name12"; if?(preg_match('/^[a-z\d_]{5,20}$/i',?$username)) {  echo?"Your username is ok."; } else?{? echo?"Wrong username format."; }

 

?  3. 驗證電話號碼

  這是一個驗證美國電話號碼的實例。

12345678$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地址的實例。

123456789$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 IPaddress.";}

  5. 驗證郵政編碼

  這是一個用來驗證郵政編碼的實例。

12345678$zipcode?=?"12345-5434";if(preg_match("/^([0-9]{5})(-[0-9]{4})?$/i",$zipcode))?{ echo?"Your Zip codeis ok.";} else?{ echo?"Wrong Zip code.";}

  6. 驗證SSN(社會保險號)

  這是一個驗證美國SSN的實例。

1234567$ssn?=?"333-23-2329";if?(preg_match('/^[\d]{3}-[\d]{2}-[\d]{4}$/',$ssn)){ echo?"Your SSN is ok.";} else?{ echo?"Wrong SSN.";}

  7. 驗證信用卡號

123456789$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. 驗證域名

12345678$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中提取域名

123456$url?="http://ansoncheung.tk/articles"; preg_match('@^(?:http://)?([^/]+)@i',$url,?$matches);?$host?=?$matches[1];echo?$host;

  10. 將文中關鍵詞高亮顯示

123456789101112  $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;

  希望本文所述對大家的PHP程序設計有所幫助。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 文章轉載地址: http://www.open-open.com/code/view/1430625516632 ...
    得起一個清新脫俗的名字閱讀 2,211評論 1 3
  • 超級全局變量: $GLOBALS 所以全局變量數組 $_SERVER 服務器環境變量數組 $_GET 通過GET方...
    勁吶閱讀 815評論 1 0
  • 一、校驗數字的表達式 二、校驗字符的表達式 三、特殊需求表達式 一.網絡驗證應用技巧 驗證 E-mail格式 驗證...
    丶legend閱讀 1,392評論 0 22
  • 一、字符串操作 PHP開發中,我們遇到最多的可能就是字符串。 一個字符串 通過下面的3種方法來定義: 1、單引號 ...
    空谷悠閱讀 782評論 1 6
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139