電子郵件驗證 正則表達式

電子郵件驗證 


      正則表達式(regular expression, 常常縮寫爲RegExp) 是一種用特殊符號編寫的模式,描述一個或多個文本字符串。使用正則表達式匹配文本的模式,這樣腳本就可以輕鬆的識別和操作文本。其實,正則表達式是值得大家花時間學習的。正則表達式不僅在javaScript 中有用,在其他許多地方也可以使用正則表達式,例如其他編程語言(比如Perl,Java,C#,Python 和PHP ),Apache 配置文件以及BBEdit 和TextMate 等文本編輯器。甚至Adobe Dreamweaver 和Microsoft Word( 在一定程度上) 使用正則表達式也可以實現更強大的搜索和替換。

下面是一個驗證電子郵件的正則表達式

var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/ ;

下面我們開始剖析這個正則表達式

re 是一個變量, 用來存儲右邊的正則表達式,在javascript 中,聲明變量使用Var 關鍵字。

正則表達式的閱讀順序是從左向右的

正則表達式總是以(/) 開頭和結尾,斜槓之間的所有內容都是正則表達式的組成部分。

脫字符(^) 表示我們要使用這個表達式來檢查以特定字符串開頭的字符串。如果去掉脫字符,那麼即使字符串開頭有一堆垃圾字符,電子郵件地址也可能被認爲是有效的。

表達式\w 表示任意單一字符,包括a~z 、A~Z 、0~9 或下劃線。電子郵件必須這些字符之一開頭。

加號+ 表示我們要尋找前麪條目的一次或多次出現。

園括號() 表示一個組,這意味着後面要引用圓括號中的所有內容,所以現在將它們放在一個組中。

      放括號[] 用來表示可以出現其中的任意一個字符。在這個示例中,方括號內包含字符\.- 。我們希望允許用戶輸入點號或連字符,但是點號對於正則表達式有特殊的意義,所以需要在它前面加上反斜槓\, 在特殊字符前加反斜槓表示“對字符轉義”,經轉義後的字符表示其本身意義。因爲有方括號,輸入字符串在這個位置可以有一個點號或一個連字符,但是兩種不能同時存在。

      問號?表示前面的條目可以出現一次或不出現。所以電子郵件地址的第一部分中可以有一個點號或一個連字符,也可以沒有。

      在?後面,再次使用\w+ ,表示點號或連字符後面必須有其他字符。

在()後面出現的* 號,表示前面的條目可以出現零次或多次。所以圓括號中的內容可以出現零次或多次。

@ 字符代表其本身,沒有任何其他意義,這個字符位於電子郵件地址和域名之間。

@ 字符後再次出現\w+ ,表示@ 後必須出現字符。在此之後,再次出現([\.-]?\w+)*, 表示電子郵件地址的後綴中允許出現點號或連字符。

      然後,在一對圓括號中建立另一個組(\.\w{2,3}), 表示我們希望找到一個點號,後面跟一些字符。在這個示例中,花括號中的數字表示前面的條目可以出現2 到3 次。在這個組的後面是一個+ 號,表示前面的條目(這個組)必須出現一次或多次。這會匹配.com 或.edu 之類的,也與ox.ac.uk 匹配。

      最後,正則表達式的末尾是一個美元符號$ ,表示匹配的字符串必須在這裏結束。斜槓結束正則表達式。

發佈了11 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章