1. 程式人生 > >JS工具函式

JS工具函式

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;
  }