网站通常使用一些javascript包裹 简化电话

//对于Web地址参数
//前面加“==”进行标识,否则直接返回
//解码时依据是否含有“==”标识来决定是否要解码
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64Encode = new Array(
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
    -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
    15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
    -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
    41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);

function Base64Encode(str) {
    var reg=/^[a-zA-Z0-9]*$/;
    if(str==null || reg.test(str))
    {
        return str;
    }
    str=Utf16To8(str);
    var out, i, len;
    var c1, c2, c3;
    
    len = str.length;
    i = 0;
    out = "";
    while(i < len) {
    c1 = str.charCodeAt(i++) & 0xff;
    if(i == len)
    {
        out += base64EncodeChars.charAt(c1 >> 2);
        out += base64EncodeChars.charAt((c1 & 0x3) << 4);
        out += "==";
        break;
    }
    c2 = str.charCodeAt(i++);
    if(i == len)
    {
        out += base64EncodeChars.charAt(c1 >> 2);
        out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xf0) >> 4));
        out += base64EncodeChars.charAt((c2 & 0xf) << 2);
        out += "=";
        break;
    }
    c3 = str.charCodeAt(i++);
    out += base64EncodeChars.charAt(c1 >> 2);
    out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xf0) >> 4));
    out += base64EncodeChars.charAt(((c2 & 0xf) << 2) | ((c3 & 0xc0) >>6));
    out += base64EncodeChars.charAt(c3 & 0x3f);
    }

    out=out.replace(///g,"@@")
    return "==" + out;
}
function Utf16To8(str) {
    var out, i, len, c;

    out = "";
    len = str.length;
    for (i = 0; i < len; i++) {
        c = str.charCodeAt(i);
        if ((c >= 0x0001) && (c <= 0x007f)) {
            out += str.charAt(i);
        } else if (c > 0x07ff) {
            out += String.fromCharCode(0xe0 | ((c >> 12) & 0x0f));
            out += String.fromCharCode(0x80 | ((c >> 6) & 0x3f));
            out += String.fromCharCode(0x80 | ((c >> 0) & 0x3f));
        } else {
            out += String.fromCharCode(0xc0 | ((c >> 6) & 0x1f));
            out += String.fromCharCode(0x80 | ((c >> 0) & 0x3f));
        }
    }
    return out;
}

function Utf8To16(str) {
    var out, i, len, c;
    var char2, char3;

    out = "";
    len = str.length;
    i = 0;
    while (i < len) {
        c = str.charCodeAt(i++);
        switch (c >> 4) {
            case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
                // 0xxxxxxx
                out += str.charAt(i - 1);
                break;
            case 12: case 13:
                // 110x xxxx   10xx xxxx
                char2 = str.charCodeAt(i++);
                out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f));
                break;
            case 14:
                // 1110 xxxx  10xx xxxx  10xx xxxx
                char2 = str.charCodeAt(i++);
                char3 = str.charCodeAt(i++);
                out += String.fromCharCode(((c & 0x0f) << 12) |
                       ((char2 & 0x3f) << 6) |
                       ((char3 & 0x3f) << 0));
                break;
        }
    }

    return out;
}
//base64编码结束

function ValidateEmail(str) {
    var r = /^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/;
    if (r.test(str)) {
        return true;
    } else {
        return false;
    }
}

function ValidateTelPhone(str) {
    var s = /^(d{2,4})(-(d{7,8}))$/;
    if (s.test(str)) {
        return true;
    } else {
        return false;
    }
}

function ValidatePhone(str) {
    var regu = /^[1][3,5,8][0-9]{9}$/;
    var re = new RegExp(regu);
    if (re.test(str)) {
        return true;
    }
    else {
        return false;
    }
}


/*设置与获取Cookie*/
var Cookie = {}
Cookie.write = function (key, value, duration) {
    var d = new Date();
    d.setTime(d.getTime() + 1000 * 60 * 60 * 24 * 30);
    document.cookie = key + "=" + encodeURI(value) + "; expires=" + d.toGMTString();
};
Cookie.read = function (key) {
    var arr = document.cookie.match(new RegExp("(^| )" + key + "=([^;]*)(;|$)"));
    if (arr != null)
        return decodeURIComponent(arr[2]);
    return "";
};

//input去掉默认内容还原编辑样式
function g_on_setvalue(id, value, cname) {
    var obj = document.getElementById(id);
    if (obj.value != value) {
        return false;
    }
    obj.value = "";
    obj.className = cname;
}


//将日期转换成"yyyy-mm-dd"格式 第二个參数为返回类型传入'ym':yyyy-mm,'md':mm-dd,默觉得'yyyy-mm-dd'
function ConvertDateFormat(strDate, sye) {
    if (strDate == null || strDate == "" || strDate == "0") {
        return ("");
    }
    else {
        try {
            var ExDate = new Date(strDate.replace(/-/g, "/"));
            var yyyy = ExDate.getFullYear();
            var mm = ExDate.getMonth() + 1; mm = mm < 10 ?

"0" + mm : mm; var dd = ExDate.getDate(); dd = dd < 10 ?

"0" + dd : dd; switch (sye) { case "ym": return yyyy + "-" + mm; break; case "md": return mm + "-" + dd; break; default: return yyyy + "-" + mm + "-" + dd; break; } } catch (e) { return ("") } } } //将日期转换成"yyyymmdd"格式 第二个參数为返回类型传入'ym':yyyy-mm,'md':mm-dd,默觉得'yyyy-mm-dd' function ConvertDateFormatString(strDate, sye) { if (strDate == null || strDate == "" || strDate == "0" || strDate.length < 8) { return (""); } else { try { var ExDate = new Date(strDate.replace(/^(d{4})(d{2})(d{2})$/, "$1/$2/$3")); var yyyy = ExDate.getFullYear(); var mm = ExDate.getMonth() + 1; mm = mm < 10 ?

"0" + mm : mm; var dd = ExDate.getDate(); dd = dd < 10 ? "0" + dd : dd; switch (sye) { case "ym": return yyyy + "-" + mm; break; case "md": return mm + "-" + dd; break; default: return yyyy + "-" + mm + "-" + dd; break; } } catch (e) { return ("") } } } //获取URL中的request參数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) { return decodeURIComponent(r[2]); } else { return ""; } } function aUrl(url) { window.location.href = url; } function rForm(formid) { document.getElementById(formid).reset(); } //全选 function checkAll(id, checkname) { var obj = document.getElementById(id); if (obj.checked) { $("input[name='" + checkname + "']").attr('checked', true) } else { $("input[name='" + checkname + "']").attr('checked', false) } } //取checkbox 返回数组 function checkvalue(name) { var obj = document.getElementsByName(name); var aList = []; var j = 0; for (var i = 1; i < obj.length; i++) { if (obj[i].checked) { j = j + 1; aList[j - 1] = obj[i].value; } } if (aList.length == 0) { alert("至少选择一条记录"); return false; } else { return aList; } } //html编码 function HTMLEncode(input) { var converter = document.createElement("DIV"); converter.innerText = input; var output = converter.innerHTML; converter = null; return output; } //html编码解码 function HTMLDecode(input) { var converter = document.createElement("DIV"); converter.innerHTML = input; var output = converter.innerText; converter = null; return output; } //tab标签层切换 function setTabDiv(curnum, checkstatus) { if (checkstatus) { $("#tabtooldiv a").removeClass("curtabbar"); $("#tabelement" + curnum).addClass("curtabbar"); $("div[name='tabconent']").css("display", "none"); $("#tabconent" + curnum).css("display", "block"); } } //验证金额 function checkPrice(thisobject) { if ($(thisobject).val().toString() == "") {return;} if ((/^-?

(([1-9]d*)|d)(.d{1,4})?$/).test($(thisobject).val().toString())) { } else { alert("输入金额格式错误请又一次输入!

"); $(thisobject).val(""); } } //限制文本输入长度 function isMaxLen(o) { var nMaxLen = o.getAttribute ? parseInt(o.getAttribute("maxlength")) : ""; if (o.getAttribute && o.value.length > nMaxLen) { o.value = o.value.substring(0, nMaxLen) } } //验证整数 function intcheck(thisobject) { if ($(thisobject).val().toString() == "") { return; } if ($(thisobject).val().toString() == "0") { return; } var number = $(thisobject).val(); var type = "^[0-9]*[1-9][0-9]*$"; var re = new RegExp(type); if (number.match(re) == null) { alert("请输入大于零的整数!"); $(thisobject).val(""); return; } } //比較时间 function comTime(begintime, endtime) { var arr = begintime.split("-"); var starttime = new Date(arr[0], arr[1], arr[2]); var starttimes = starttime.getTime(); var arrs = endtime.split("-"); var lktime = new Date(arrs[0], arrs[1], arrs[2]); var lktimes = lktime.getTime(); if (starttimes >= lktimes) { return false; } else return true; } //open window function showMyModalDialog(url, width, height,Title) { var now = new Date(); var urlr if (url.indexOf('=') == -1) { urlr = url + "?

cach=" + escape(now); } else { urlr = url + "&cach=" + escape(now); } if (Title !=null) { JqueryDialog.Open(Title, urlr, width, height); } else { JqueryDialog.Open('', urlr, width, height); } } //open mini window function openwindow(url, height, width) { var t = (window.screen.availHeight - 400) / 2; var l = (window.screen.availWidth - 600) / 2; window.open(url, "Query", "height=" + height + ", width=" + width + ", top=" + t + ",left=" + l + ",toolbar=no, menubar=no, scrollbars=yes, resizable=no"); } //confirm function Confirm(msg, control) { $.messager.confirm('确认', msg, function (r) { if (r) { eval(control.toString().slice(11)); } }); return false; } //gridview function gridview(objgridview) { //get obj id var gridviewId = "#" + objgridview; //even $(gridviewId + ">tbody tr:even").addClass("NormalColor"); //first $(gridviewId + ">tbody tr:first").removeClass("NormalColor").addClass("HeadColor"); //odd $(gridviewId + ">tbody tr:odd").addClass("AlterColor"); //move and click edit by hb 20130206 $(gridviewId + ">tbody tr").hover(function () { $(this).addClass("HoverColor"); }, function () { $(this).removeClass("HoverColor"); }).click(function () { var $check = $(this).find("input:checkbox"); if ($check.attr("checked")) { $(this).addClass("SelectColor"); } else { $(this).removeClass("SelectColor"); } }); //all check $("#chkAll").click(function () { $(gridviewId + '>tbody >tr >td >input:checkbox:visible').attr('checked', this.checked); }); //check status $(gridviewId + ' >tbody >tr >td >input:checkbox').click(function () { var expr1 = gridviewId + ' >tbody >tr >td >input:checkbox:checked'; var expr2 = gridviewId + ' >tbody >tr >td >input:checkbox'; var selectAll = $(expr1).length == $(expr2).length; $('#chkAll').attr('checked', selectAll); }); } //load function Load() { $("<div class="datagrid-mask"></div>").css({ display: "block", "100%", height: $(window).height() }).appendTo("body"); $("<div class="datagrid-mask-msg"></div>").html("正在执行。请稍候。

。。").appendTo("body").css({ display: "block", left: ($(document.body).outerWidth(true) - 190) / 2, top: ($(window).height() - 45) / 2 }); } //display Load function dispalyLoad() { $(".datagrid-mask").remove(); $(".datagrid-mask-msg").remove(); } function checkroleinfo(checkresult, checkaction) { if (checkresult == "1") { } else { $("[rolecheck='" + checkaction + "']").remove(); } } function showLoad(tipInfo) { var eTip = document.createElement('div'); eTip.setAttribute('id', 'tipDiv'); eTip.style.position = 'absolute'; eTip.style.display = 'none'; eTip.style.border = 'solid 0px #D1D1D1'; eTip.style.backgroundColor = '#4B981D'; eTip.style.padding = '5px 15px'; eTip.style.top = '10px'; eTip.style.right = '10px'; eTip.style.width = '120px'; eTip.innerHTML = '<img src='/Images/loader.gif' style='float:left;' />  <span style='color:#ffffff; font-size:12px'>' + tipInfo + '</span>'; try { document.body.appendChild(eTip); } catch (e) { } $("#tipDiv").css("float", "right"); $("#tipDiv").css("z-index", "99"); $('#tipDiv').fadeIn(); } function closeLoad() { $('#tipDiv').fadeOut(); } function ForDight(Dight, How) { Dight = Math.round(Dight * Math.pow(10, How)) / Math.pow(10, How); return Dight; } function changetitle(object) { $(object).attr("title", $(object).val()); } function atoc(numberValue) { var numberValue = new String(Math.round(numberValue * 100)); // 数字金额 var chineseValue = ""; // 转换后的汉字金额 var String1 = "零壹贰叁肆伍陆柒捌玖"; // 汉字数字 var String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; // 相应单位 var len = numberValue.length; // numberValue 的字符串长度 var Ch1; // 数字的汉语读法 var Ch2; // 数字位的汉字读法 var nZero = 0; // 用来计算连续的零值的个数 var String3; // 指定位置的数值 if (len > 15) { alert("超出计算范围"); return ""; } if (numberValue == 0) { chineseValue = "零元整"; return chineseValue; } String2 = String2.substr(String2.length - len, len); // 取出相应位数的STRING2的值 for (var i = 0; i < len; i++) { String3 = parseInt(numberValue.substr(i, 1), 10); // 取出需转换的某一位的值 if (i != (len - 3) && i != (len - 7) && i != (len - 11) && i != (len - 15)) { if (String3 == 0) { Ch1 = ""; Ch2 = ""; nZero = nZero + 1; } else if (String3 != 0 && nZero != 0) { Ch1 = "零" + String1.substr(String3, 1); Ch2 = String2.substr(i, 1); nZero = 0; } else { Ch1 = String1.substr(String3, 1); Ch2 = String2.substr(i, 1); nZero = 0; } } else { // 该位是万亿。亿。万。元位等关键位 if (String3 != 0 && nZero != 0) { Ch1 = "零" + String1.substr(String3, 1); Ch2 = String2.substr(i, 1); nZero = 0; } else if (String3 != 0 && nZero == 0) { Ch1 = String1.substr(String3, 1); Ch2 = String2.substr(i, 1); nZero = 0; } else if (String3 == 0 && nZero >= 3) { Ch1 = ""; Ch2 = ""; nZero = nZero + 1; } else { Ch1 = ""; Ch2 = String2.substr(i, 1); nZero = nZero + 1; } if (i == (len - 11) || i == (len - 3)) { // 假设该位是亿位或元位,则必须写上 Ch2 = String2.substr(i, 1); } } chineseValue = chineseValue + Ch1 + Ch2; } if (String3 == 0) { // 最后一位(分)为0时。加上“整” chineseValue = chineseValue + "整"; } return chineseValue; } var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; function generateMixed(n) { var res = ""; for (var i = 0; i < n; i++) { var id = Math.ceil(Math.random() * 35); res += chars[id]; } return res; } /// <summary> /// 实现数据的四舍五入法 /// </summary> /// <param name="v">要进行处理的数据</param> /// <param name="x">保留的小数位数</param> /// <returns>四舍五入后的结果</returns> function Round(v, x) { var isNegative = false; //假设是负数 if (v < 0) { isNegative = true; v = -v; } var IValue = 1; for (var i = 1; i <= x; i++) { IValue = IValue * 10; } var Int = Math.round(v * IValue, 0); v = Int / IValue; if (isNegative) { v = -v; } return v; } /// <summary> /// 实现数据的向上取整 /// </summary> /// <param name="v">要进行处理的数据</param> /// <param name="x">保留的小数位数</param> /// <returns>向上取整后的结果</returns> function Ceiling(v, x) { var isNegative = false; //假设是负数 if (v < 0) { isNegative = true; v = -v; } var IValue = 1; for (var i = 1; i <= x; i++) { IValue = IValue * 10; } var Int = Math.ceil(v * IValue); v = Int / IValue; if (isNegative) { v = -v; } return v; } /// <summary> /// 实现数据的向下取整 /// </summary> /// <param name="v">要进行处理的数据</param> /// <param name="x">保留的小数位数</param> /// <returns>向下取整后的结果</returns> function Floor(v, x) { var isNegative = false; //假设是负数 if (v < 0) { isNegative = true; v = -v; } var IValue = 1; for (var i = 1; i <= x; i++) { IValue = IValue * 10; } var Int = Math.floor(v * IValue); v = Int / IValue; if (isNegative) { v = -v; } return v; } /// <summary> /// 实现数据的四舍五入,向上取整。向下取整 /// </summary> /// <param name="v">要进行处理的数据</param> /// <param name="x">保留的小数位数</param> /// <param name="type">1四舍五入。2向上取整,3向下取整</param> /// <returns></returns> function DecimalProcessing(v, x, type) { var result = 0; switch (type) { case "1": result = Round(v, x); break; case "2": result = Ceiling(v, x); break; case "3": result = Floor(v, x); break; default: result = Round(v, x); break; } return result; } //除法函数,用来得到精确的除法结果 // 说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比較明显。这个函数返回较为精确的除法结果。

//调用:accDiv(arg1,arg2) //返回值:arg1除以arg2的精确结果 function accDiv(arg1, arg2) { var t1 = 0, t2 = 0, r1, r2; try { t1 = arg1.toString().split(".")[1].length } catch (e) { } try { t2 = arg2.toString().split(".")[1].length } catch (e) { } with (Math) { r1 = Number(arg1.toString().replace(".", "")) r2 = Number(arg2.toString().replace(".", "")) return (r1 / r2) * pow(10, t2 - t1); } } //给Number类型添加一个div方法,调用起来更加方便。

Number.prototype.div = function (arg) { return accDiv(this, arg); } //乘法函数。用来得到精确的乘法结果 //说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比較明显。这个函数返回较为精确的乘法结果。

//调用:accMul(arg1,arg2) //返回值:arg1乘以 arg2的精确结果 function accMul(arg1, arg2) { var m = 0, s1 = arg1.toString(), s2 = arg2.toString(); try { m += s1.split(".")[1].length } catch (e) { } try { m += s2.split(".")[1].length } catch (e) { } return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m) } // 给Number类型添加一个mul方法。调用起来更加方便。 Number.prototype.mul = function (arg) { return accMul(arg, this); } //加法函数,用来得到精确的加法结果 //说明:javascript的加法结果会有误差。在两个浮点数相加的时候会比較明显。

这个函数返回较为精确的加法结果。 //调用:accAdd(arg1,arg2) // 返回值:arg1加上arg2的精确结果 function accAdd(arg1, arg2) { var r1, r2, m, c; try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } c = Math.abs(r1 - r2); m = Math.pow(10, Math.max(r1, r2)) if (c > 0) { var cm = Math.pow(10, c); if (r1 > r2) { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")) * cm; } else { arg1 = Number(arg1.toString().replace(".", "")) * cm; arg2 = Number(arg2.toString().replace(".", "")); } } else { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")); } return (arg1 + arg2) / m } //给Number类型添加一个add方法,调用起来更加方便。 Number.prototype.add = function (arg) { return accAdd(arg, this); } //减法函数,用来得到精确的减法结果 //说明:javascript的减法结果会有误差,在两个浮点数相减的时候会比較明显。

这个函数返回较为精确的减法结果。 //调用:accSub(arg1,arg2) // 返回值:arg1加上arg2的精确结果 function accSub(arg1, arg2) { var r1, r2, m, n; try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度 n = (r1 >= r2) ? r1 : r2; return ((arg1 * m - arg2 * m) / m).toFixed(n); }


版权声明:本文博主原创文章,博客,未经同意不得转载。

原文地址:https://www.cnblogs.com/blfshiye/p/4821565.html