10個(gè)實(shí)用的PHP正則表達(dá)式匯總

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

  1. 驗(yàn)證E-mail地址

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

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";}

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

123456if?(filter_var('test+email@ansoncheung', FILTER_VALIDATE_EMAIL))?{ echo"Your email is ok.";} else?{ echo?"Wrong email address format.";}

  2. 驗(yàn)證用戶名

  這是一個(gè)用于驗(yàn)證用戶名的實(shí)例,其中包括字母、數(shù)字(A-Z,a-z,0-9)、下劃線以及最低5個(gè)字符,最大20個(gè)字符。同時(shí),也可以根據(jù)需要,對(duì)最小值和最大值做合理的修改。

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. 驗(yàn)證電話號(hào)碼

  這是一個(gè)驗(yàn)證美國(guó)電話號(hào)碼的實(shí)例。

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. 驗(yàn)證IP地址

  這是一個(gè)用來(lái)驗(yàn)證IPv4地址的實(shí)例。

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. 驗(yàn)證郵政編碼

  這是一個(gè)用來(lái)驗(yàn)證郵政編碼的實(shí)例。

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. 驗(yàn)證SSN(社會(huì)保險(xiǎn)號(hào))

  這是一個(gè)驗(yàn)證美國(guó)SSN的實(shí)例。

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. 驗(yàn)證信用卡號(hào)

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. 驗(yàn)證域名

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. 將文中關(guān)鍵詞高亮顯示

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;

  希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 文章轉(zhuǎn)載地址: http://www.open-open.com/code/view/1430625516632 ...
    得起一個(gè)清新脫俗的名字閱讀 2,285評(píng)論 1 3
  • 超級(jí)全局變量: $GLOBALS 所以全局變量數(shù)組 $_SERVER 服務(wù)器環(huán)境變量數(shù)組 $_GET 通過(guò)GET方...
    勁吶閱讀 864評(píng)論 1 0
  • 一、校驗(yàn)數(shù)字的表達(dá)式 二、校驗(yàn)字符的表達(dá)式 三、特殊需求表達(dá)式 一.網(wǎng)絡(luò)驗(yàn)證應(yīng)用技巧 驗(yàn)證 E-mail格式 驗(yàn)證...
    丶legend閱讀 1,486評(píng)論 0 22
  • 一、字符串操作 PHP開(kāi)發(fā)中,我們遇到最多的可能就是字符串。 一個(gè)字符串 通過(guò)下面的3種方法來(lái)定義: 1、單引號(hào) ...
    空谷悠閱讀 986評(píng)論 1 6
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評(píng)論 19 139

友情鏈接更多精彩內(nèi)容