我阅读了这个问题,并相应地更改了rails模型代码:RoR 4中具有有效性的正则表达式
下面是我在rails中的约会时间的正则表达式:
/\A((19[7-9][0-9])|(2[0-9][0-9][0-9]))\/((0[1-9])|(1[0-2]))\/(([0-2][0-9])|(3[0-1]))\s(([0-1][0-9])|(2[0-4]))\:([0-5][0-9])\z/不过,下面这个regex在javascript中工作:
/^((19[7-9][0-9])|(2[0-9][0-9][0-9]))\/((0[1-9])|(1[0-2]))\/(([0-2][0-9])|(3[0-1]))\s(([0-1][0-9])|(2[0-4]))\:([0-5][0-9])$/我试图将一个日期时间字符串传递给他们,但我不明白为什么总是失败。这是一根绳子:
2014/12/02 11:06我想我的模型代码可能会有帮助:
validates :start, presence: true, format: { :with => /\A((19[7-9][0-9])|(2[0-9][0-9][0-9]))\/((0[1-9])|(1[0-2]))\/(([0-2][0-9])|(3[0-1]))\s(([0-1][0-9])|(2[0-4]))\:([0-5][0-9])\Z/, :message => "must be in this format: YYYY/MM/DD HH:MM" }
validates :finish, presence: true, format: { :with => /\A((19[7-9][0-9])|(2[0-9][0-9][0-9]))\/((0[1-9])|(1[0-2]))\/(([0-2][0-9])|(3[0-1]))\s(([0-1][0-9])|(2[0-4]))\:([0-5][0-9])\Z/, :message => "must be in this format: YYYY/MM/DD HH:MM" }编辑:我知道问题出在哪里,但我还是不知道怎么解决.
由于某些原因,当我提交表单时,2014/12/24 16:19的日期被缩减为2014。这将导致验证失败并引发错误。
有人能帮我弄清楚吗?
发布于 2014-12-24 18:05:45
对于ruby部件的regexp是正确的,它与提供的字符串匹配:
re = /\A((19[7-9][0-9])|(2[0-9][0-9][0-9]))\/((0[1-9])|(1[0-2]))\/(([0-2][0-9])|(3[0-1]))\s(([0-1][0-9])|(2[0-4]))\:([0-5][0-9])\z/
'2014/12/02 11:06' =~ re # => 0 一些注意到
https://stackoverflow.com/questions/27640622
复制相似问题