2015-10-19 71 views
-5

我需要驗證用戶名,則要求如下:正則表達式來驗證用戶名

  • 長度爲至少8,每次最多20
  • 具有包含字母(az ),沒有大寫字母
  • 可以包含符號點(),連字符( - )或下劃線(_),其他符號被禁止

有人知道這個正則表達式嗎?

+1

很好的問題。什麼是努力?已經在SO裏搜索過了嗎? – soorapadman

+0

查看在線文檔[regular-expressions.info/](http://www.regular-expressions.info/) – morels

回答

3

既然你沒有表現出多大的努力,試圖弄清楚這一點也不一會然而,給你一個領先地位,我會爲你提供一個正則表達式,將一種幫助你建立你想要的正則表達式:

[a-z\.\-\_]{8,20}

在這裏你可以看到:
[ ] - 一個字符類:它裏面的任何字符可以匹配
{ } - 量詞:8個20個字符長
a-z之間 - 然GE從az
\.所有字符 - 匹配一個點
\- - 匹配一個連字符
_ - 匹配文本的下劃線

然而,該正則表達式是越野車的:例如,用戶名由8個(或更多)點也被接受:.........,所以只有符號的組合,沒有字母:-_-__-_._-。我相信這不是一個預期的行爲。

你可以在這裏看到一個演示:regex101.com

+1

提示:Lookahead表達式(以'(?=')開始)。這樣就可以修復由Asunez。 –