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

2002-04-30 00:0000
2002-04-30 00:00:00

楼主你好,正则匹配最重要的是你要知道所有可能的变化。

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

\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}"代表时间及其分隔符号,解释参照上一句。

如果还有进步一的变化或者疑问,欢迎继续留言追问。谢谢。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-11
^\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也是能通过的
第2个回答  2012-04-11
正则的话貌似有点麻烦,每个月分的天数不去定,最好是拖个控件让用户自己选时间