【发布时间】:2011-10-17 12:15:24
【问题描述】:
validates_format_of :order_of_importance, :on => :create, :with => /^[1-3]{3}$/,
:message => "Order of Importance must have 3 Digits"
现在我可以验证使用的数字是1, 2, 3,但我想也确保这些数字不仅被使用,而且每个数字只使用一次。
例如:
应该是有效的数字
2 3 1
1 3 2
1 2 3
不应该是有效的数字:
1 1 2
2 2 1
3 3 3
【问题讨论】:
-
您是否有特定原因要使用正则表达式?我会使用一种方法。
-
没有具体原因。这正是我开始的。我想这已经到了一种方法更为重要的地步。既然如此,你将如何编写方法?
-
老实说,我可能只会做一个 uniq!看看它是否和原来的大小一样。我有时有点懒。 (假设它们在一个数组中。)也可以将它们转储到地图中并比较数组/地图的大小。
-
同意 Dave 这个任务可以用
str.split('').uniq.length == 3之类的东西轻松解决,而且很难找到合适的正则表达式
标签: ruby-on-rails regex validation