js正则表达式转换数据库日期字段为js日期型

  function getDate(strDate) {
      if (strDate == null || strDate == "")
          return null;
      var date = eval('new Date(' + strDate.replace(/\//g, '-').replace(/\d+(?=-[^-]+$)/,
       function (a) { return parseInt(a, 10) - 1; }).match(/\d+/g) + ')');
      return date;
  }

数据库取得的数据,用json传到前端后,日期型已经是字符串(例如:2014/07/14 或 2014-07-14),上面的js函数就是

将字符串再转为js日期型。

代码解析:

1) 将2014/07/14转为2014-07-14,统一成中划线分隔。

strDate.replace(/\//g, '-')

2)用正则表达式找出月份的数字,将其减去1。理由是之后用【new Date】转换为日期型时,其月份参数是0~11的范围。

 

replace(/\d+(?=-[^-]+$)/, function (a) { return parseInt(a, 10) - 1; })

3)”/\d+(?=-[^-]+$)/“的说明:匹配数字之后是由中划线("?=-"),且中划线之后是以非中划线的字符为字符串尾部("[^-]+$")的数字。年“2014"之后虽然是中划线,但中划线之后到最终是"07-14",包含有中划线,所有不匹配。而月"07"之后是中划线,中划线之后到最终是"14",匹配要求。

    参考例子:将输入的电话号码的最后一位数字以前的数字内容替换为*号

'186-0745-5588'.replace(/.+(?=\d[-]*$)/, function (a) { return a.replace(/\d/g, '*'); });
结果: "***-****-***8"

'186-0745-'.replace(/.+(?=\d[-]*$)/, function (a) { return a.replace(/\d/g, '*'); });
结果:"***-***5-"

4)"match(/\d+/g)", 将"2014-6-14"分隔为字符数组'["2014", "6", "14"]'。

     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值