js常用方法合集

js封裝:

// 時間戳轉年月日
function formatDate(obj) {
    var date = new Date(obj);
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m < 10 ? ('0' + m) : m;
    var d = date.getDate();
    d = d < 10 ? ('0' + d) : d;
    var h = date.getHours();
    h = h < 10 ? ('0' + h) : h;
    var minute = date.getMinutes();
    var second = date.getSeconds();
    minute = minute < 10 ? ('0' + minute) : minute;
    second = second < 10 ? ('0' + second) : second;
    return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
}

function Trim(str) {
    var param = str.replace(/(^\s*)|(\s*$)/g, "");
    var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\]<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]");
    var rs = "";
    for (var i = 0; i < param.length; i++) {
        rs = rs + param.substr(i, 1).replace(pattern, '');
    }
    return rs;
}

// 設置 Cookie
function setCookie(name, value) {
    var argv = setCookie.arguments;
    var argc = setCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    if (expires != null) {
        var LargeExpDate = new Date();
        LargeExpDate.setTime(LargeExpDate.getTime() + (expires * 1000 * 3600 * 24));
    }
    document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : ("; expires=" + LargeExpDate.toGMTString()));
}

// 獲取 Cookie
function getCookie(Name) {
    var search = Name + "="
    if (document.cookie.length > 0) {
        offset = document.cookie.indexOf(search)
        if (offset != -1) {
            offset += search.length
            end = document.cookie.indexOf(";", offset)
            if (end == -1) end = document.cookie.length
            return unescape(document.cookie.substring(offset, end))
        } else return ""
    }
}

// 刪除 Cookie
function deleteCookie(name) {
    var expdate = new Date();
    expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));
    setCookie(name, "", expdate);
}

/* 手機號隱藏中間4位*/
function hidd_tel(param_tel) {
    return param_tel.substr(0, 3) + "****" + param_tel.substr(7);
}


/**
 * 只能填寫整數,不包括0
 * @param str
 * @returns {boolean}
 */
function verifi_fuwuqi(str) {
    var zf = /^(-)?[1-9][0-9]*$/
    if (!zf.test(str)) {
        layer.alert('只能填寫整數,不包括0');
        return false;
    }
}

/**
 * 只能填寫數字【正整數、正浮點數】
 * @param str
 * @returns {boolean}
 */
function verifi_amount(str) {
    var positive_integer = /^[0-9]*[1-9][0-9]*$/  //正整數
    var float_number = /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/  //正浮點數
    if (!positive_integer.test(str) && !float_number.test(str)) {
        layer.alert('只能填寫數字');
        return false;
    } else {
        return true;
    }
}

/**
 * 只能填寫數字【正整數、正浮點數】
 * @param str
 * @returns {boolean}
 */
function verifi_amount_two(str) {
    var positive_integer = /^[0-9]*[1-9][0-9]*$/  //正整數
    var float_number = /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/  //正浮點數
    if (!positive_integer.test(str) && !float_number.test(str)) {
        return false;
    } else {
        return true;
    }
}

/**
 * 驗證訂單號,微信訂單號(32位),支付寶訂單號(28位)
 * @param wx_zfb
 * @param params
 * @returns {boolean}
 */
function verifi_orderid(wx_zfb, params) {
    let site = ['runoob', 'google', 'taobao'];
    wx_reg = /^[A-Za-z0-9]{28}$/;
    zfb_reg = /^[A-Za-z0-9]{32}$/;
    if (wx_zfb == 28) {
        return wx_reg.test(params);
    } else if (wx_zfb == 32) {
        return zfb_reg.test(params);
    }
}


// 驗證是否是手機號
function checkPhone(phone) {
    if (!(/^1[3456789]\d{9}$/.test(phone))) {
        return false;
    } else {
        return true;
    }
}

// 驗證隱藏中間四位的手機號
function checkPhoneHidd(phone) {
    var phoneLength = phone.length;
    var top_four = phone.substring(0,3);
    var lst_four = phone.substring(phoneLength-4,phoneLength);
    var top_four_bool = /^[0-9]+$/.test(top_four);
    var lst_four_bool = /^[0-9]+$/.test(lst_four);
    if(!top_four_bool || !lst_four_bool){
        return false;
    }else{
        return true;
    }
}

/**
 * [function_name 只能出現字母和數字]
 * @Author           劉子鶴
 * @CreateTime       2019-06-24
 * @LatestUpdateTime 2019-06-24
 */
function verifi_str(param_str) {
    var reg = /^[a-zA-Z0-9]+$/;
    return reg.test(param_str);
}

/**
 * [RemoveChinese 如果字符串中包含漢字,返回 true]
 */
function verifiChinese(strValue) {   
    var reg = /[\u4e00-\u9fa5]/g;   
    return reg.test(strValue);  
}

// 將秒轉換爲 時:分:秒
function formatSeconds(value) {
    var secondTime = parseInt(value);// 秒
    var minuteTime = 0;// 分
    var hourTime = 0;// 小時
    if (secondTime > 60) {//如果秒數大於60,將秒數轉換成整數
        //獲取分鐘,除以60取整數,得到整數分鐘
        minuteTime = parseInt(secondTime / 60);
        //獲取秒數,秒數取佘,得到整數秒數
        secondTime = parseInt(secondTime % 60);
        //如果分鐘大於60,將分鐘轉換成小時
        if (minuteTime > 60) {
            //獲取小時,獲取分鐘除以60,得到整數小時
            hourTime = parseInt(minuteTime / 60);
            //獲取小時後取佘的分,獲取分鐘除以60取佘的分
            minuteTime = parseInt(minuteTime % 60);
        }
    }
    var result = "" + parseInt(secondTime) + " 秒 ";  // 秒
    if (minuteTime > 0) {
        result = "" + parseInt(minuteTime) + " 分 " + result;  // 分鐘
    }
    if (hourTime > 0) {
        result = "" + parseInt(hourTime) + " 時 " + result;  // 小時
    }
    return result;
}

// 將時間戳轉換成Y-m-d形式
function formatYmd(obj) { //時間戳轉年月日
    var date = new Date(obj);
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m < 10 ? ('0' + m) : m;
    var d = date.getDate();
    d = d < 10 ? ('0' + d) : d;
    return y + '-' + m + '-' + d;
}

/**
 * 將日期格式轉換成時間戳 【 精確到毫秒 】
 * @param argument
 * @returns {number}
 */
function formatMillisecond(argument) {
    var date = new Date(argument); //傳入一個時間格式,如果不傳入就是獲取現在的時間了,這樣做不兼容火狐。
    var date = new Date(argument.replace(/-/g, '/'));
    time_millisecond = date.getTime();
    return time_millisecond;
}

/**
 * 將日期格式轉換成時間戳 【 精確到秒 】
 * @param argument
 * @returns {number|*}
 */
function formatSecond(argument) {
    var date = new Date(argument); //傳入一個時間格式,如果不傳入就是獲取現在的時間了,這樣做不兼容火狐。
    var date = new Date(argument.replace(/-/g, '/'));
    time_millisecond = Date.parse(date);
    time_second = time_millisecond / 1000;
    return time_second;
}

/**
 * 根據指定字符,將字符串分割爲數組
 * @param param_str
 * @returns {never|string[]|*}
 */
function js_explode(param_str, separator_str) {
    var arr_res = param_str.split(separator_str);
    return arr_res;
}

/**
 * 封裝請求
 */
var request = new function () {
    var self = this;
    //post請求
    this.post = function (url, data, callback, isReload = false) {
        requestType('POST', url, data, callback, isReload);
    }
    //get請求
    this.get = function (url, data, callback, isReload = false) {
        requestType('GET', url, data, callback, isReload);
    }
}

/**
 * AJAX請求
 * @param type
 * @param url
 * @param data
 * @param callback
 */
function requestType(type, url, data, callback) {
    $.ajax({
        url: url,
        type: type,
        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
        dataType: "json",
        data: data,
        timeout: 60000,
        success: function (res) {
            callback(res);
        },
        error: function (xhr, textstatus, thrown) {
            var return_error = 'Status:' + xhr.status + ',' + xhr.statusText + ',請聯繫管理員!'
            console.log(return_error);
            callback(xhr);
        }
    });
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章