2015-05-30 90 views
2

早上好,正則表達式來檢查用戶名是否有效

我想檢查用戶選擇的用戶名是否有效。 可悲的是,我找不到任何適合我需求的正則表達式,並且自己寫這個正則表達式並沒有給我帶來很大的幫助。 我希望我能在這裏得到一些幫助。 :)

規則:
3-26位數
AZ
AZ
0-9
一個點允許

到現在爲止我有():

if (!preg_match('/^[A-Za-z][A-Za-z0-9]{3,26}$/', $joinUser)) 

但這個問題讓我感到困擾。

感謝您的幫助!

+0

3至26位數?或信件? –

+0

將該值預先限定爲最多1個週期是否值得一讀,然後將它作爲有效字符作爲上面的正則表達式加上句號? –

+0

3-26數字,不僅字母。 :) –

回答

2

試試這個辦法具有負前瞻:

'/^(?!.*[.].*[.])[A-Za-z0-9.]{3,26}$/' 

或使用

'/^(?!.*\..*\.)[A-Za-z0-9.]{3,26}$/' 

逃逸,而不是字符類。

負向預測將導致此正則表達式不匹配兩個或更多週期的某個事物。

+0

非常感謝,像一個魅力。 :) –

0

看看吧!它會匹配單個週期或下劃線,而不是多個,而不是兩個。希望這可以幫助!

if(preg_match('/^(?=.{3,26}$)[a-z0-9]+(?:[._][a-z0-9]+)?$/i', $username)) 
    echo 'Match'; 
echo 'Not Match'; 
相關問題