2010-02-28 123 views
1

尋找只允許字母,數字和空格的Rails驗證。 這將做字母和數字,但沒有空格。 我需要空間。Rails驗證,數字+字母+空格

validates_format_of :name, :with => /^\w+$/i, 
:message => "can only contain letters and numbers." 

回答

4
validates_format_of :name, :with => /^[a-zA-Z\d ]*$/i, 
:message => "can only contain letters and numbers." 

這裏僅僅是數字,字母答空間。

這正是你所需要的嗎?

PS:這個工具是非常有用的,如果你是做了很多REG-EXP的:http://rubular.com/

+0

是的,這工作!該鏈接看起來不錯,讓我想學習最混亂的語法! – s84

+0

這也會匹配空字符串(您可以將*更改爲+以匹配至少一個字符串)。 –

+0

這與下劃線匹配,'\ w'已經匹配數字,所以你不需要'\ d'。 –

1

如果你只想要的字母,數字和空格,而不是下劃線,接受的答案不會爲工作您。下面也不允許空字符串,但如果軌道模型具有validates_presence_of :name

/^[a-z0-9 ]+$/i 
+0

謝謝。沒有意識到下劃線在那裏 – s84

1

它不會有問題無論哪種方式,這是一種方式:

validates :name, format: { with: /\A[a-zA-Z0-9\s]+\z/i, message: "can only contain letters and numbers." } 

有一個愉快的一天。