2013-08-18 67 views
3

在Rails應用程序,我有低於這個當前正則表達式驗證:Ruby正則表達式驗證?

validates :characters, format: {with: /\A(([a-z0-9])+(-?[a-z0-9]+)*\s?)+\Z/, message: "can't be blank. Characters can only be [a-z 0-9 . # - +]" } 

我對人物的驗證最初只允許小寫字母和數字。現在我想允許額外的字符。 # - +我現在如何構建我的正則表達式?

+1

你究竟在做什麼驗證?此外,你的正則表達式匹配一個可選的'-'以及一個可選的空間。 – Achrome

+0

所以你的意思是'########'也是有效的? – Jerry

回答

6

根據您的問題,如果你想允許AZ,0-9和# - +僅適用於正則表達式是:

/[a-z0-9.#+\-]/和您的驗證將是這個樣子:

validates :characters, format: {with: /[a-z0-9.#+\-]/, message: "can't be blank. Characters can only be [a-z 0-9 . # - +]" } 

你甚至可以試試http://rubular.com/。這是最好的去紅寶石正則表達式的地方。

+0

您始終可以使用\ d而不是0-9。 –