這裏是IT修真院分享課,今天要分享的主題是html
【什麼是正則表達式,如何用正則表達式表達郵箱】jquery
正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫爲regex、regexp或RE),計算機科學的一個概念。正則表達式一般被用來檢索、替換那些符合某個模式(規則)的文本。正則表達式
正則表達式是對字符串(包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱爲「元字符」))操做的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個「規則字符串」,這個「規則字符串」用來表達對字符串的一種過濾邏輯。正則表達式是一種文本模式,該模式描述在搜索文本時要匹配的一個或多個字符串。api
你能夠編寫一個正則表達式,用來查找全部以0開頭,後面跟着2-3個數字,而後是一個連字號「-」,最後是7或8位數字的字符串(像010-12345678或0376-7654321)。spa
正則表達式有不少設定好的字符,咱們只須要按規則組裝字符就能夠實現字符串的匹配.net
這裏有一篇比人整理的正則表達式文code
tool.oschina.net/uploads/api…regexp
能夠在線查看,固然你能夠本身下載jdk文檔,隨時均可以看。htm
很是很是的簡單文檔
咱們只須要根據正則表達式的規則組合就能夠了。
好比說
26個大小寫英文字母表示爲a-zA-Z
數字表示爲0-9
下劃線表示爲_
中劃線表示爲-
因爲名稱是由若干個字母、數字、下劃線和中劃線組成,因此須要用到+表示屢次出現
根據以上條件得出郵件名稱表達式:[a-zA-Z0-9_-]+
通常域名的規律爲「[N級域名][三級域名.]二級域名.頂級域名」,好比「qq.com」、「www.qq.com」、「mp.weixin.qq.com」、「12-34.com.cn」,分析可得域名相似
**
.**
.** .**
組成。
「*」部分能夠表示爲[a-zA-Z0-9_-]+
".**"部分能夠表示爲.[a-zA-Z0-9_-]+
「.** .**」能夠表示爲(.[a-zA-Z0-9_-]+)+
綜上所述,域名部分能夠表示爲[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+
最終表達式:
因爲郵箱的基本格式爲「名稱@域名」,須要使用「^」匹配郵箱的開始部分,用$匹配郵箱結束部分以保證郵箱先後不能有其餘字符,因此最終郵箱的正則表達式爲:
`^[a-zA-Z0-9_-]+`@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
複製代碼
而後具體使用的時候咱們能夠用string的matches方法來判斷字符串是否匹配正則
例:
String name = "12345678";
Boolean ntrue =name.matches("^[A-Za-z0-9]{3,16}$"))。
複製代碼
返回的是boolean類型。
【更多內容,歡迎加入交流羣565763832與你們一塊兒討論交流】
【這裏是技能樹·IT修真院:IT修真院官網,初學者轉行到互聯網的彙集地】