1
1
一种可能是通过
即
其中一个限制是,它不会处理日期的某些部分的前导0,例如,如果您想接受2010-6-1,但是
另外,我不确定这是不是你的意思,但你的第二个例子
|
2
0
一种方法是定义一个首先进行验证的新类。 require 'date' class Mydate def self.strptime(string) raise ArgumentError 'Fail' if string !~ /^\d\d\d\d-\d\d-\d\d$/ Date.strptime(string) end end d = Mydate.strptime '2001-01-01' puts d d2 = Mydate.strptime '2001-01-02xxxx' puts d2 另一种方法是打开日期类,为strptime方法加别名,编写一个新的方法来执行所需的验证,然后调用别名方法。 require 'date' class Date class << self alias :orig_strptime :strptime end def self.strptime(string) puts "in new strptime" raise ArgumentError 'Fail' if string !~ /^\d\d\d\d-\d\d-\d\d$/ Date.orig_strptime(string) end end d = Date.strptime '2001-01-01' puts d d2 = Date.strptime '2001-01-02xxxx' puts d2 |
Stilian · 存储库设置中没有Github页面部分 2 年前 |
Kellen · 查看$卷展栏功能列表 2 年前 |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
johncssjs · 将数组转换为每个元素的嵌套哈希 2 年前 |
solidsnake99 · Rails db:如何绕过验证 2 年前 |