2010-08-11 111 views
1

我想驗證我的用戶,因此他們只能在他們的用戶名中使用a-z和-正則表達式+ Ruby On Rails

validates_format_of :username, :with => /[a-z]/ 

但是,這條規則也允許_-和大寫字母。我如何只允許字母,數字,_-

回答

0

您的正則表達式不夠具體。您正在尋找類似:

:with => /\A[a-z_]+\Z/ 
3

此正則表達式可以確保第一個字符是一個小寫字母,其餘的要麼是小寫字母,數字,連字符或下劃線。

/\A[a-z][a-z0-9_-]+\Z/ 

如果你不關心的第一個字符,你可以使用

/\A[a-z0-9_-]+\Z/ 

如果你想確保名稱4個字符長最小:

/\A[a-z][a-z0-9_-]{3,}\Z/ 

如果你想確保長度在4和8之間

/\A[a-z][a-z0-9_-]{3,7}\Z/ 

如果長度應該是6

/\A[a-z][a-z0-9_-]{5}\Z/