如何验证文本输入,使其只允许a-z,A-Z,0-9,();:?!,。[] {} - 字符(也是空格)和Rails?

时间:2018-02-01 04:43:47

标签: ruby-on-rails ruby rails-activerecord

如何验证文本输入以便它只允许a-z, A-Z, 0-9, ();:?!,.[]{}-个字符(也是空格)?

我在模型中添加了类似的内容

class Oder < ApplicationRecord
   ......
   ......
   validates :text, presence: true, format: { with: /[0-9\w]*[\(\;\:\-\?\!\,\.\[\]\{\}\,\.)]*/ }
   ......
 end
end

但它不起作用。它还允许其他角色(wïthûmlauts)。 提前谢谢。

2 个答案:

答案 0 :(得分:4)

当正则表达式匹配时,一个或多个字符在您的文本中某处。当字符是字符串开头(\A)与其结尾(\z)之间的唯一字符时,您需要将正则表达式更改为仅匹配。

将正则表达式更改为:

/\A[0-9\w\s\(\;\:\-\?\!\,\.\[\]\{\}\,\.)]*\z/

答案 1 :(得分:0)

validates_format_of :text, without: /[-0-9\w ;:,.?!\[\]{}()]*/