在正則表達式中可以通過一對小括號“ ()”將一個完整的正則表達式分割出幾個子表達式,並可以用 “$ + index”來分別引用對應子匹配項的內容。
下面以格式化日期爲例:
目標是將“Tue Aug 08 2017 18:23:48 GMT+0800 (中國標準時間)”轉化爲“2017-08-08”
var time= new Date().toLocaleDateString()
var reg=/(\d{4})\/(\d{1,2})\/(\d{1,2})/
var now=time.replace(reg,function($1,$2,$3,$4){
if($3<10){$3="0"+$3}
if($4<10){$4="0"+$4}
return $2+"-"+$3+"-"+$4
})
console.log(now) //2017-08-08
另一種實現方式:
var now=(new Date()).toLocaleDateString().replace(/\/(\d)\//, "-0$1-").replace(/-(\d)$/, "-0$1")
console.log(now) //2017-08-08