把数字字符串转换为日期

var str = '20160925120014';
var date_str = str.replace(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/g,'$1-$2-$3 $4:$5:$6');
console.log(new Date(date_str).getFullYear()+"-"+(new Date(date_str).getUTCMonth()+1)+"-"+new Date(date_str).getDate()+" "+new Date(date_str).getHours()+":"+new Date(date_str).getMinutes()+":"+new Date(date_str).getSeconds());

1.正则表达式

/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/g,'$1-$2-$3 $4:$5:$6'

此表达式是意思是第一组匹配连续4个数字,第二组匹配连续两个数字,第三组匹配连续两个数字,第四组匹配连续两个数字,第五组匹配连续两个数字,第六组匹配连续两个数字,然后把匹配到的6组数字分别存到$1,$2,$3,$4,$5,$6中

2.对于正则replace约定了一个特殊标记符$:

  1. $i (i:1-99) : 表示从左到右正则子表达式所匹配的文本。
  2. $&:表示与正则表达式匹配的全文本。
  3. $`(`:切换技能键):表示匹配字符串的左边文本。
  4. $’(‘:单引号):表示匹配字符串的右边文本。
  5. $$:表示$转移。

下面来几个demo:

"boy & girl".replace(/(\w+)\s*&\s*(\w+)/g,"$2 & $1") //girl & boy
 
 "boy".replace(/\w+/g,"$&-$&") // boy-boy

  "javascript".replace(/script/,"$& != $`") //javascript != java

 "javascript".replace(/java/,"$&$' is ") // javascript is script
 3.replace是字符串的方法,如果定义的变量为数字,则需先对数字执行toString()方法
posted @ 2016-09-26 16:36  陆漫漫  阅读(1758)  评论(0编辑  收藏  举报