问题描述
function dateISO(value, format){ // 这里如何写}dateISO('2010-12-10 17:25:10', 'yyyy-MM-dd HH:mm:ss'); //验证通过dateISO('2010-12-10 17:25:10', 'yyyy-MM-dd HH:mm'); //验证不通过dateISO('2010-12-10', 'yyyy-MM-dd'); //验证通过dateISO('2010-12-10 17:25', 'yyyy-MM-dd HH:mm'); //验证通过dateISO('17:25:10', 'HH:mm:ss'); //验证通过就是输入的时间要和格式相匹配。格式:可以有 yyyyMMdd HHmmss 这种的。嗯 就先这两种吧,一种为有 - 的,一种 无 。先谢谢啦。
解决方案
<head></head><body></body></html><script type="text/javascript">/*dateISO('2010-12-10 17:25:10', 'yyyy-MM-dd HH:mm:ss'); //验证通过 dateISO('2010-12-10 17:25:10', 'yyyy-MM-dd HH:mm'); //验证不通过 dateISO('2010-12-10', 'yyyy-MM-dd'); //验证通过 dateISO('2010-12-10 17:25', 'yyyy-MM-dd HH:mm'); //验证通过 dateISO('17:25:10', 'HH:mm:ss'); //验证通过 */var DateFormatter = {Patterns:{YEAR : /y/g,MONTH : /M/g,DAY : /d/g,HOUR : /H/g,MINUTE : /m/g,SECOND : /s/g,MILSECOND : /f/g},FormatPatterns:function(format){return eval("/"+format.replace(this.Patterns.YEAR,'[0-9]').replace(this.Patterns.MONTH,'[0-9]').replace(this.Patterns.DAY,'[0-9]').replace(this.Patterns.HOUR,'[0-9]').replace(this.Patterns.MINUTE,'[0-9]').replace(this.Patterns.SECOND,'[0-9]').replace(this.Patterns.MILSECOND,'[0-9]')+"/g");},DateISO:function(value,format){var formatReg = "";if(value == "" || format=="")return false;formatReg = this.FormatPatterns(format);alert(formatReg);return formatReg.test(value);}}var ret = DateFormatter.DateISO('2010-1d-10 17:25:10', 'yyyy-MM-dd HH:mm:ss'); alert(ret); //falsevar ret1 = DateFormatter.DateISO('2010-10-10 17:25:10', 'yyyy-MM-dd HH:mm:ss'); alert(ret1); //true</script>这是我写的简单的实例,具体的我写在我的博客中http://283433775.iteye.com/admin/blogs/840407
解决方案二:
参考这个Javascript正则表达式匹配一个时间格式的字符串
解决方案三:
可以参考http://linder0209.iteye.com/blog/235774