读书人

对pwc_pengwenchao【用js验证指定格式

发布时间: 2012-11-04 10:42:42 作者: rapoo

对pwc_pengwenchao【用js验证指定格式的时间】问题的解析

var dateSourcePattern = 'yyyy-MM-dd HH:mm:ss' ;var dateFormatPattern = dateSourcePattern.replace('yyyy','[0-9]{4}').replace('MM','[0-9]{1,2}').replace('dd','[0-9]{1,2}').replace('HH','[0-9]{1,2}').replace('mm','[0-9]{1,2}').replace('ss','[0-9]{1,2}');

<html><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>?

好了,问题解决了,不过需要注意的是:这里我的正则替换并不是非常严格,因为日期由特定的格式,并不是只要是数字就可以的,比如月份最大只能匹配12,所以细节问题还是需要改善,这里仅是提高一种方法。

读书人网 >JavaScript

热点推荐