【问题标题】:Validate mm/dd/yyyy with regEx使用正则表达式验证 mm/dd/yyyy
【发布时间】:2011-11-02 13:31:09
【问题描述】:

它不工作。我不知道正则表达式,但我需要使用它。

if ($('input[name="due_date"]').val().match("^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d$")) {
  $('input[name="due_date"]').after("<span class='v_error'>Must fill</span>");
}

【问题讨论】:

  • 您能否更具体地谈谈“不工作”?也许你只需要在.match前面插入.value
  • 请问您为什么需要使用正则表达式?最好保留至今,而不是正则表达式。太多的极端案例。看看这个帖子stackoverflow.com/questions/511439/…

标签: javascript jquery regex validation date


【解决方案1】:

您正在尝试与 HTML 对象匹配,您可以在 jQuery 选择器之后添加 .val(),例如

$('input[name="due_date"]').val().match(/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d$/);

【讨论】:

  • 我忘记了,但是,您不必将正则表达式放在引号 (") 之间再次检查我的代码,我已对其进行了编辑。
【解决方案2】:

正则表达式被斜线包围。我刚刚发现你的正则表达式也不正确......所以,再加上xdazz指出的jQuery错误:

$('input[name="due_date"]').val().match(/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$/);

正则表达式来自this website

【讨论】:

  • 它的工作,但现在我需要新的正则表达式。我需要适用于 2011 年 3 月 3 日和 2011 年 3 月 3 日的正则表达式。如果那不可能,至少我需要适用于 2011 年 3 月 3 日的正则表达式。
  • 当然有可能……但您的问题似乎已经得到解答。
【解决方案3】:
$('input[name="due_date"]').val().match.......

【讨论】:

  • 没有错误信息,但是当我添加 alert() 时,它会提示“Null”信息。
  • @Gerelt Od:Null 表示不匹配。试试 alert($('input[name="due_date"]').val())。
  • val() 工作,它的警报输入值。当我输入正确的值时,它仍然会提示 NULL。
  • 试试"^(0?[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d$"
猜你喜欢
  • 2020-04-09
  • 2017-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-30
  • 2013-04-04
  • 2013-11-15
  • 2017-07-10
相关资源
最近更新 更多