我遇到的蛋疼的JS兼容问题

一、Date的实例化

这个让我着实蛋疼了一下午。我习惯性的获取了日期的string=“2014-06-20”, 然后又想当然的new Date("2014-06-20")

在chrome, firefox,IE9下ok没问题,很高兴。休息了一会测试报过来ie6、ie7、ie8上js显示数据不对,日期全部显示成"NAN", "not a number";

var m=(new Date("2014-06-20")).getMonth();alert(m)显示NANalert(typeof(m)) 显示number这让我郁闷了一把

然后开始怀疑ie6、7、8下实例化的这个date对象,弹出日期字符串正常。郁闷,难道new Date() 不支持字符串参数声明,可文档里是有的???

后来查到date还有其他的声明方式date(year,month,day),不过这个声明方式太过复杂,如过你date(2014,6,20)生成的日期对象是2014-07-20的,那个月份和日期要做很多判断,

超级麻烦,难道js中就没有一种通用的简单的声明日期对象的方式?如果没有js的设计者就太失败了!

然后就在群里跟那群程序傻冒们讨论,有一个哥们声称曾经“2014/06/20”的方式通过了ie6-8系列,很是怀疑!抱着试试的态度,哇,差点眼泪出来了。

这里要告诉大家的是var d = new Date("2014-06-20");的声明方式是通不过IE6-8的,请改用var d = new Date("2014/06/20");

注意:

我们通常会将“2014-06-20”中的 “-” 替换成 “/”。最初没有去细究js中的replace方法。于是又想当然的str.replace("-","/"),结果js的replace方法是只替换一次,也就是只会将第一个“-”替换,

但是人家是支持正则表达式的,所以如果下次要替换所有“-”的时候就需要str.replace(/\-/g,"/");

自从会了点正则表达式

二、table

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值