首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails regex不起作用,但Javascript regex起作用。

Rails regex不起作用,但Javascript regex起作用。
EN

Stack Overflow用户
提问于 2014-12-24 17:53:52
回答 1查看 115关注 0票数 0

我阅读了这个问题,并相应地更改了rails模型代码:RoR 4中具有有效性的正则表达式

下面是我在rails中的约会时间的正则表达式:

代码语言:javascript
运行
复制
/\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中工作:

代码语言: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])$/

我试图将一个日期时间字符串传递给他们,但我不明白为什么总是失败。这是一根绳子:

代码语言:javascript
运行
复制
2014/12/02 11:06

我想我的模型代码可能会有帮助:

代码语言:javascript
运行
复制
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。这将导致验证失败并引发错误。

有人能帮我弄清楚吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-24 18:05:45

对于ruby部件的regexp是正确的,它与提供的字符串匹配:

代码语言:javascript
运行
复制
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 

一些注意到

  1. 请参阅SO主题123.,并解释如何在ruby中匹配日期。
  2. 使用regexp联机服务rubular.comrubyxp.com验证regexp匹配的ruby语言、嵌入式irb应用程序或调试撬动 gem。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27640622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档