JS工具函式
阿新 • • 發佈:2019-02-11
1. 格式化字串,字串左邊補0
/**
*
* @param {String} str 傳入字串
* @param {Number} len 字元總長度
*/
function leftZero(str, len){
str = ''+str;
return str.length >= len ? str : new Array(len - str.length + 1).join('0') + str;
}
2. 格式化價格,新增逗號分隔
function formatCommas(val){
if(isNaN(val)){
return '-' ;
}
val = (val+"").split(".");
return val[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(val.length>1?"."+val[1]:"");
}
3. 格式化日期
/** 將 Date 轉化為指定格式的String
* 月(M)、日(d)、小時(h)、分(m)、秒(s)、季度(q) 可以用 1-2 個佔位符,
* 年(y)可以用 1-4 個佔位符,毫秒(S)只能用 1 個佔位符(是 1-3 位的數字)
* 例子:
* formatDate("yyyy-MM-dd hh:mm:ss.S", date) ==> 2006-07-02 08:09:04.423
* formatDate("yyyy-M-d h:m:s.S", date) ==> 2006-7-2 8:9:4.18
**/
const formatDate = (fmt, date) => {
var o = {
"M+" : date.getMonth()+1, //月份
"d+" : date.getDate(), //日
"h+" : date.getHours(), //小時
"m+" : date.getMinutes(), //分
"s+" : date.getSeconds(), //秒
"q+" : Math.floor((date.getMonth()+3)/3), //季度
"S" : date.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt))
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
return fmt;
}
/**
* 功能:實現addDate功能
* 引數:interval,字串表示式,表示要新增的時間間隔.
* 引數:number,數值表示式,表示要新增的時間間隔的個數.
* 引數:date,時間物件.
* 返回:新的時間物件.
* var now = new Date();
* var newDate = addDate("d", 5, now);
**/
const addDate = (interval, number, date) => {
switch (interval) {
case "y": {
date.setFullYear(date.getFullYear() + number);
return date;
break;
}
case "q": {
date.setMonth(date.getMonth() + number * 3);
return date;
break;
}
case "m": {
date.setMonth(date.getMonth() + number);
return date;
break;
}
case "w": {
date.setDate(date.getDate() + number * 7);
return date;
break;
}
case "d": {
date.setDate(date.getDate() + number);
return date;
break;
}
case "h": {
date.setHours(date.getHours() + number);
return date;
break;
}
case "m": {
date.setMinutes(date.getMinutes() + number);
return date;
break;
}
case "s": {
date.setSeconds(date.getSeconds() + number);
return date;
break;
}
default: {
date.setDate(d.getDate() + number);
return date;
break;
}
}
}
4. 獲取URL引數
/**
* @param {String} name 引數名稱
**/
function getQueryParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}