Step 1 分析:
这个问题的解答,我们可以试着去想怎样去实现一个日期格式的转化,也就是通常语言中的Date类中的format ,指定一个yyyy/MM/dd HH:mm:ss ffff 就能对指定日期进行转换。
上面所讲的format,核心实现原理就是正则替换,现在我们来思考这个问题,这么确定格式正确,首先我们应该想到利用正则匹配来验证格式是否正确。因此我们可以做的是这样:
'2010-12-10 17:25:10', '\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}'
我们可以用后面的正则来验证前面的日期是否符合格式,这样我们便有了方法:
我们需要将'yyyy-MM-dd HH:mm:ss' 转换为正则表达式:
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}');
这样转化为了正则后,就可以与以前的日期进行匹配了。
Step 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); //false
var ret1 = DateFormatter.DateISO('2010-10-10 17:25:10', 'yyyy-MM-dd HH:mm:ss');
alert(ret1); //true
</script>
好了,问题解决了,不过需要注意的是:这里我的正则替换并不是非常严格,因为日期由特定的格式,并不是只要是数字就可以的,比如月份最大只能匹配12,所以细节问题还是需要改善,这里仅是提高一种方法。
分享到:
相关推荐
标题"PWC.zip_pwc_pwc-8.8_webcam_zip"和描述"webcam device driver"揭示了这个压缩包文件与"PWC"设备驱动程序有关,特别是针对版本8.8的网络摄像头。"PWC"通常指的是Philips WebCam,这是一个早期的摄像头硬件系列...
INFA技术超群_中文KB_00013_PWC_如何获得数据抽取时间
INFA技术超群_中文KB_00028_PWC_ FTP等待时间过长导致Session失败
INFA技术超群_中文KB_00002_PWC_LOOKUP如何返回多条记录
INFA技术超群_中文KB_00004_PWC_如何实现PWC客户端的中英文切换
INFA技术超群_中文KB_00011_PWC_如何控制FTP目标文件的换行符格式
文档中指出,PwC全球CBDC指数关注两个不同使用案例的进展:零售CBDC和银行间批发CBDC。零售CBDC指的是由个人和公司直接持有的数字货币;而银行间批发CBDC则是限制于金融机构之间,主要用于银行支付和金融结算过程。...
INFA技术超群_中文KB_00021_PWC_如何调用存储过程
INFA技术超群_中文KB_00001_PWC_AIX下安装产品提示INFA_JDK_HOME无效
INFA技术超群_中文KB_00020_PWC_PowerCenter安装时默认使用哪些端口
Informatica PowerCenter INFA技术超群_中文KB_00023_PWC_如何批量抽取同构不同名的文件
INFA技术超群_中文KB_00012_PWC_如何让多Session共享代理主键
INFA技术超群_中文KB_00003_PWC_读取FlatFile的同时读取文件名写入字段
INFA技术超群_中文KB_00018_PWC_如何在Lookup组件中使用含子查询和Hint的SQL
INFA技术超群_中文KB_00022_PWC_如何处理固定分隔符的不定长数据
INFA技术超群_中文KB_00025_PWC_PowerCenter生成文本文件时去除首行#符号
INFA技术超群_中文KB_00006_PWC_如何配置一个Workflow同时运行多个实例
INFA技术超群_中文KB_00027_PWC_Source Qualifier组件的SQL设置,INFA 技术超群管委会原创, 版权所有,违者必究。
【2021】2021年数字化汽车报告- 洞察全球移动出行市场(首篇)-PWC_44页.pdf
光流是图像序列中像素在时间上的运动估计,它在计算机视觉领域有着广泛的应用,如视频分析、目标跟踪、自动驾驶等。PWC-Net(Pyramid, Warping, Cost Volume – Network)以其高效和准确性而备受关注。 标题中的...