2012-09-10 73 views
0

我需要幫助正確獲取我的用戶名的正則表達式格式。它假設需要3個字母,並且不允許有空格或_。我認爲我到目前爲止正確的軌道上:需要幫助才能獲得用戶名正確的正則表達式格式

validates_format_of :username, :with => /([^a-zA-Z]*([a-zA-Z]+)[^a-zA-Z]*){3,}/ 

這允許空間,但我不知道這是否正確一般。這個正則表達式需要哪些修正來擺脫使用空格或_的能力?

回答

1

如果你的意思是它必須是所有的字母,它只是:

/^[a-zA-Z]{3,}$/ 

否則,使用前瞻:

/^(?=(.*[a-zA-Z]){3})[allowed characters here]+$/ 
+0

哎呀,我忘了數部分的允許。我怎麼會需要至少3個字母,沒有空格或下劃線,並允許數字? – LearningRoR

+0

@LearningRoR:看到更新,你可以指定任何一組字符。 (數字將是'a-zA-Z0-9'。) – Ryan

+0

所以這個:'/^(?=(.*[a-zA-Z]){3})[a-zA-z0-9]+ $ /' – LearningRoR