js正则表达式如何验证文本框输入的时间格式 为下列所示

2002-04-3000:00002002-04-3000:00:00... 2002-04-30 00:0000
2002-04-30 00:00:00
展开
 我来答
johnsonick
2012-04-17 · 超过18用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:47.7万
展开全部
楼主你好,正则匹配最重要的是你要知道所有可能的变化。

如果格式非常一致,就像你举的例子一样,那么一个很简单的匹配,如下就能解决问题:

\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}

如果是变化比较多,比如年份可能是2位,分隔符不只是"-"或者":"那么单一,亦或者空格可能不止一个,也可能不是空格是tab之类的,那么就需要更复杂一点的匹配来解决上述问题,如下:

(\d{4}|\d{2})[^\d]\d{2}[^\d]\d{2}\s+\d{2}[^\d]\d{2}[^\d]\d{2}

解释一下,开头的“(\d{4}|\d{2})”表示年份可能是4位或者2位。然后“[^\d]”代表一个非数字的分隔符号,后面的2个“\d{2}”代表月份和日期。之后“\s+”代表一个或者多个空格符号,"\d{2}[^\d]\d{2}[^\d]\d{2}"代表时间及其分隔符号,解释参照上一句。

如果还有进步一的变化或者疑问,欢迎继续留言追问。谢谢。
calvinove
2012-04-11
知道答主
回答量:39
采纳率:0%
帮助的人:30.2万
展开全部
^\d{4}-0[1-9]-0[1-9] 0[0-9]:0[0-9]0[0-9]|\d{4}-[10-12]-[10-31] [10-24]:[10-59][10-59]$

手头没工具 你实验一下

另外 如果不幸成功了 也是有bug的 比如输入2002-02-30 00:0000也是能通过的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
so_sou
2012-04-11 · 超过15用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:29.4万
展开全部
正则的话貌似有点麻烦,每个月分的天数不去定,最好是拖个控件让用户自己选时间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式