常用js方法整理common.js

项目中常用js方法整理成了common.js

    var h = {};
    h.get = function (url, data, ok, error) {
        $.ajax({
            url: url,
            data: data,
            dataType: ‘json‘,
            success: ok,
            error: error
        });
    }
    h.post = function (url, data, ok, error) {
        $.ajax({
            url: url,
            data: data,
            type: ‘post‘,
            dataType: ‘json‘,
            success: ok,
            error: error
        });
    }
    //获取url参数
    h.url = function (url) {
        if (!url) {
            url = location.search.substring(1);
        } else {
            url = url.substr(url.indexOf(‘?‘) + 1);
        }
        var args = new Object();   // 声明并初始化一个 "类"
        // 获得地址(URL)"?"后面的字符串.
        var query = decodeURI(url);
        var pairs = query.split("&");  // 分割URL(别忘了‘&‘是用来连接下一个参数)
        for (var i = 0; i < pairs.length; i++) {
            var pos = pairs[i].indexOf(‘=‘);
            if (pos == -1) continue; // 它在找有等号的 数组[i]
            var argname = pairs[i].substring(0, pos); // 参数名字
            var value = pairs[i].substring(pos + 1);  // 参数值
            // 以键值对的形式存放到"args"对象中
            args[argname] = decodeURI(value);
        }
        return args;
    }  

    // 返回字符串的实际长度, 一个汉字算2个长度
    String.prototype.strlen = function () {
        return this.replace(/[^\x00-\xff]/g, "**").length;
    }
    //字符串超出省略
    String.prototype.cutstr = function (len) {
        var restr = this;
        var wlength = this.replace(/[^\x00-\xff]/g, "**").length;
        if (wlength > len) {
            for (var k = len / 2; k < this.length; k++) {
                if (this.substr(0, k).replace(/[^\x00-\xff]/g, "**").length >= len) {
                    restr = this.substr(0, k) + "...";
                    break;
                }
            }
        }
        return restr;
    }
    //替换全部
    String.prototype.replaceAll = function (s1, s2) {
        return this.replace(new RegExp(s1, "gm"), s2)
    }
    //字符串去空格
    String.prototype.trim = function () {
        return this.replace(/(^\s*)|(\s*$)/g, "");
    }
    String.prototype.trimAll = function () {
        return this.replace(/\s+/g, "");
    }
    String.prototype.lTrim = function () {
        return this.replace(/(^\s*)/g, "");
    }
    String.prototype.rTrim = function () {
        return this.replace(/(\s*$)/g, "");
    }
    //判断是否以某个字符串开头
    String.prototype.startWith = function (s) {
        return this.indexOf(s) == 0
    }
    //判断是否以某个字符串结束
    String.prototype.endWith = function (s) {
        var d = this.length - s.length;
        return (d >= 0 && this.lastIndexOf(s) == d)
    }  

    //删除数组中存在重复的元素
    function getUnique(someArray) {
        tempArray = someArray.slice(0); //复制数组到临时数组
        for (var i = 0; i < tempArray.length; i++) {
            for (var j = i + 1; j < tempArray.length;) {
                if (tempArray[j] == tempArray[i])
                    //后面的元素若和待比较的相同,则删除并计数;
                    //删除后,后面的元素会自动提前,所以指针j不移动
                {
                    tempArray.splice(j, 1);
                }
                else {
                    j++;
                }
                //不同,则指针移动
            }
        }
        return tempArray;
    }
    //判断数组中是否存在重复的元素
    function confirmRepeat(someArray) {
        tempArray = someArray.slice(0); //复制数组到临时数组
        for (var i = 0; i < tempArray.length; i++) {
            for (var j = i + 1; j < tempArray.length;) {
                if (tempArray[j] == tempArray[i])
                    //后面的元素若和待比较的相同,则删除并计数;
                    //删除后,后面的元素会自动提前,所以指针j不移动
                {
                    return true;
                }
                else {
                    j++;
                }
                //不同,则指针移动
            }
        }
        return false;
    }  

    //判断某个值是否在数组中
    Array.prototype.in_array = function (e) {
        for (i = 0; i < this.length; i++) {
            if (this[i] == e)
                return true;
        }
        return false;
    }
    //判断某个值在数组中的位置
    Array.prototype.indexOf = function (e) {
        for (i = 0; i < this.length; i++) {
            if (this[i] == e)
                return i;
        }
        return -1;
    }  

    //转义html标签
    function HtmlEncode(text) {
        return text.replace(/&/g, ‘&‘).replace(/\"/g, ‘"‘).replace(/</g, ‘<‘).replace(/>/g, ‘>‘)
    }  

    //格式化日期 DateFormat(‘yyyy_MM_dd hh:mm:ss:SS 星期w 第q季度‘)
    function DateFormat(format, date) {
        if (!date) {
            date = new Date();
        }
        var Week = [‘日‘, ‘一‘, ‘二‘, ‘三‘, ‘四‘, ‘五‘, ‘六‘];
        var o = {
            "y+": date.getYear(), //year
            "M+": date.getMonth() + 1, //month
            "d+": date.getDate(), //day
            "h+": date.getHours(), //hour
            "H+": date.getHours(), //hour
            "m+": date.getMinutes(), //minute
            "s+": date.getSeconds(), //second
            "q+": Math.floor((date.getMonth() + 3) / 3), //quarter
            "S": date.getMilliseconds(), //millisecond
            "w": Week[date.getDay()]
        }
        if (/(y+)/.test(format)) {
            format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
        }
        for (var k in o) {
            if (new RegExp("(" + k + ")").test(format)) {
                format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
            }
        }
        return format;
    }  

    //设置cookie值
    function setCookie(name, value, Hours) {
        var d = new Date();
        var offset = 8;
        var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
        var nd = utc + (3600000 * offset);
        var exp = new Date(nd);
        exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);
        document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString() + ";domain=360doc.com;"
    }
    //获取cookie值
    function getCookie(name) {
        var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
        if (arr != null) return unescape(arr[2]);
        return null
    }  

    //加入收藏夹
    function AddFavorite(sURL, sTitle) {
        try {
            window.external.addFavorite(sURL, sTitle)
        } catch (e) {
            try {
                window.sidebar.addPanel(sTitle, sURL, "")
            } catch (e) {
                alert("加入收藏失败,请使用Ctrl+D进行添加")
            }
        }
    }
    //设为首页
    function setHomepage(homeurl) {
        if (document.all) {
            document.body.style.behavior = ‘url(#default#homepage)‘;
            document.body.setHomePage(homeurl)
        } else if (window.sidebar) {
            if (window.netscape) {
                try {
                    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
                } catch (e) {
                    alert("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入about:config,然后将项 signed.applets.codebase_principal_support 值该为true");
                }
            }
            var prefs = Components.classes[‘@mozilla.org/preferences-service;1‘].getService(Components.interfaces.nsIPrefBranch);
            prefs.setCharPref(‘browser.startup.homepage‘, homeurl)
        }
    }  

    //跨浏览器绑定事件
    function addEventSamp(obj, evt, fn) {
        if (!oTarget) { return; }
        if (obj.addEventListener) {
            obj.addEventListener(evt, fn, false);
        } else if (obj.attachEvent) {
            obj.attachEvent(‘on‘ + evt, fn);
        } else {
            oTarget["on" + sEvtType] = fn;
        }
    }
    //跨浏览器删除事件
    function delEvt(obj, evt, fn) {
        if (!obj) { return; }
        if (obj.addEventListener) {
            obj.addEventListener(evt, fn, false);
        } else if (oTarget.attachEvent) {
            obj.attachEvent("on" + evt, fn);
        } else {
            obj["on" + evt] = fn;
        }
    }  

    //判断是否移动设备访问
    function isMobileUserAgent() {
        return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));
    }  

    //完美判断是否为网址
    function IsURL(strUrl) {
        var regular = /^\b(((https?|ftp):\/\/)?[-a-z0-9]+(\.[-a-z0-9]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d))\b(\/[-a-z0-9_:\@&?=+,.!\/~%\$]*)?)$/i
        if (regular.test(strUrl)) {
            return true;
        } else {
            return false;
        }
    }  

    //获取页面高度
    function getPageHeight() {
        var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat" ? a : g.documentElement;
        return Math.max(f.scrollHeight, a.scrollHeight, d.clientHeight);
    }
    //获取页面宽度
    function getPageWidth() {
        var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat" ? a : g.documentElement;
        return Math.max(f.scrollWidth, a.scrollWidth, d.clientWidth);
    }  

    //获取页面可视宽度
    function getPageViewWidth() {
        var d = document, a = d.compatMode == "BackCompat"
                        ? d.body
                        : d.documentElement;
        return a.clientWidth;
    }
    //获取页面可视高度
    function getPageViewHeight() {
        var d = document, a = d.compatMode == "BackCompat"
                        ? d.body
                        : d.documentElement;
        return a.clientHeight;
    }  

    //获取页面scrollLeft
    function getPageScrollLeft() {
        var a = document;
        return a.documentElement.scrollLeft || a.body.scrollLeft;
    }
    //获取页面scrollTop
    function getPageScrollTop() {
        var a = document;
        return a.documentElement.scrollTop || a.body.scrollTop;
    }
    //获取窗体可见范围的宽与高
    function getViewSize() {
        var de = document.documentElement;
        var db = document.body;
        var viewW = de.clientWidth == 0 ? db.clientWidth : de.clientWidth;
        var viewH = de.clientHeight == 0 ? db.clientHeight : de.clientHeight;
        return Array(viewW, viewH);
    }
    //随机数时间戳
    function uniqueId() {
        var a = Math.random, b = parseInt;
        return Number(new Date()).toString() + b(10 * a()) + b(10 * a()) + b(10 * a());
    }  

    //获取网页被卷去的位置
    function getScrollXY() {
        return document.body.scrollTop ? {
            x: document.body.scrollLeft,
            y: document.body.scrollTop
        } : {
            x: document.documentElement.scrollLeft,
            y: document.documentElement.scrollTop
        }
    }  

    //匹配国内电话号码(0511-4405222 或 021-87888822)
    function istell(str) {
        var result = str.match(/\d{3}-\d{8}|\d{4}-\d{7}/);
        if (result == null) return false;
        return true;
    }
    //匹配身份证(15位或18位)
    function isidcard(str) {
        var result = str.match(/\d{15}|\d{18}/);
        if (result == null) return false;
        return true;
    }
    //移动电话
    function checkMobile(str) {
        if (!(/^1[3|5|8][0-9]\d{4,8}$/.test(str))) {
            return false;
        }
        return true;
    }
    // 判断输入是否是一个由 0-9 / A-Z / a-z 组成的字符串
    function isalphanumber(str) {
        var result = str.match(/^[a-zA-Z0-9]+$/);
        if (result == null) return false;
        return true;
    }
    // 判断输入是否是有效的电子邮件
    function isemail(str) {
        var result = str.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
        if (result == null) return false;
        return true;
    }  

    //金额大写转换函数 transform(‘123431233132.23‘)
    function transform(tranvalue) {
        try {
            var i = 1;
            var dw2 = new Array("", "万", "亿"); //大单位
            var dw1 = new Array("拾", "佰", "仟"); //小单位
            var dw = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //整数部分用
            //以下是小写转换成大写显示在合计大写的文本框中
            //分离整数与小数
            var source = splits(tranvalue);
            var num = source[0];
            var dig = source[1];
            //转换整数部分
            var k1 = 0; //计小单位
            var k2 = 0; //计大单位
            var sum = 0;
            var str = "";
            var len = source[0].length; //整数的长度
            for (i = 1; i <= len; i++) {
                var n = source[0].charAt(len - i); //取得某个位数上的数字
                var bn = 0;
                if (len - i - 1 >= 0) {
                    bn = source[0].charAt(len - i - 1); //取得某个位数前一位上的数字
                }
                sum = sum + Number(n);
                if (sum != 0) {
                    str = dw[Number(n)].concat(str); //取得该数字对应的大写数字,并插入到str字符串的前面
                    if (n == ‘0‘) sum = 0;
                }
                if (len - i - 1 >= 0) { //在数字范围内
                    if (k1 != 3) { //加小单位
                        if (bn != 0) {
                            str = dw1[k1].concat(str);
                        }
                        k1++;
                    } else { //不加小单位,加大单位
                        k1 = 0;
                        var temp = str.charAt(0);
                        if (temp == "万" || temp == "亿") //若大单位前没有数字则舍去大单位
                            str = str.substr(1, str.length - 1);
                        str = dw2[k2].concat(str);
                        sum = 0;
                    }
                }
                if (k1 == 3) { //小单位到千则大单位进一
                    k2++;
                }
            }
            //转换小数部分
            var strdig = "";
            if (dig != "") {
                var n = dig.charAt(0);
                if (n != 0) {
                    strdig += dw[Number(n)] + "角"; //加数字
                }
                var n = dig.charAt(1);
                if (n != 0) {
                    strdig += dw[Number(n)] + "分"; //加数字
                }
            }
            str += "元" + strdig;
        } catch (e) {
            return "0元";
        }
        return str;
    }
    //拆分整数与小数
    function splits(tranvalue) {
        var value = new Array(‘‘, ‘‘);
        temp = tranvalue.split(".");
        for (var i = 0; i < temp.length; i++) {
            value = temp;
        }
        return value;
    }  

    //格式化数字
    function number_format(number, decimals, dec_point, thousands_sep) {
        /*
        * 参数说明:
        * number:要格式化的数字
        * decimals:保留几位小数
        * dec_point:小数点符号
        * thousands_sep:千分位符号
        * */
        number = (number + ‘‘).replace(/[^0-9+-Ee.]/g, ‘‘);
        var n = !isFinite(+number) ? 0 : +number,
            prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
            sep = (typeof thousands_sep === ‘undefined‘) ? ‘,‘ : thousands_sep,
            dec = (typeof dec_point === ‘undefined‘) ? ‘.‘ : dec_point,
            s = ‘‘,
            toFixedFix = function (n, prec) {
                var k = Math.pow(10, prec);
                return ‘‘ + Math.ceil(n * k) / k;
            };  

        s = (prec ? toFixedFix(n, prec) : ‘‘ + Math.round(n)).split(‘.‘);
        var re = /(-?\d+)(\d{3})/;
        while (re.test(s[0])) {
            s[0] = s[0].replace(re, "$1" + sep + "$2");
        }  

        if ((s[1] || ‘‘).length < prec) {
            s[1] = s[1] || ‘‘;
            s[1] += new Array(prec - s[1].length + 1).join(‘0‘);
        }
        return s.join(dec);
    }  
时间: 2024-08-01 10:44:13

常用js方法整理common.js的相关文章

项目中常用js方法整理common.js

var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data: data, dataType: 'json', success: ok, error: error }); } h.post = function (url, data, ok, error) { $.ajax({ url: url, data: data, type: 'post', dataType: 'json', success:

常用JS方法整理

本篇目录: 1.截取指定字节数的字符串 2.判断是否微信 3.获取时间格式的几个举例 4.获取字符串字节长度 5.对象克隆.深拷贝 6.组织结构代码证验证 7.身份证号验证 8.js正则为url添加http标识 9.URL有效性校验方法 10.自定义jsonp方法 11.cookie操作 12.生成随机字符串 (可指定长度) 13.浏览器判断 14.Rem移动端适配 15.获取url后参数 16.动态加载JS 17.生成随机颜色值 上述方法都是日常工作中使用所得,所以会不定时更新,大家也可以留下

JavaScript中一些常用的方法整理

当前时间和输入时间比较 var timeLong = Date.parse(new Date());//当前时间var t1 = Date.parse($("#returnTime2").val().replace(/-/g, "/")); timeLong是通过js获取当前时间 t1 火狐不支持2012-1-1这种格式,所以需要转换一下. 替换所有要替换的文字 replaceAll String.prototype.replaceAll = function (s

JavaScript 深入学习及常用工具方法整理 ---- 01.浮点数

在JavaScript中是不区分整数值和浮点数值的,其中所有的数字均用浮点数值表示.JavaScript采用IEEE 754标准(有兴趣可以浏览网络规范分类下的IEEE 754标准,需要原文件请在留言处联系我)定义的64位浮点格式表示数字. 目前只针对浮点数的计算.其他的内容会在后续时间进行完善,也希望大家积极提供资源,让你学到的更多. 浮点数直接量可以用以下语法表示: [digits][.digits][(E|e)[(+|-)]digits] IEEE754是一种二进制表示法,可以精确的表示(

(转)python中math模块常用的方法整理

原文:https://www.cnblogs.com/renpingsheng/p/7171950.html#ceil ceil:取大于等于x的最小的整数值,如果x是一个整数,则返回x copysign:把y的正负号加到x前面,可以使用0 cos:求x的余弦,x必须是弧度 degrees:把x从弧度转换成角度 e:表示一个常量 exp:返回math.e,也就是2.71828的x次方 expm1:返回math.e的x(其值为2.71828)次方的值减1 fabs:返回x的绝对值 factorial

python3基础之整数常用的方法整理

希望对大家学习或者使用python3能具有一定的参考价值. __abs__     #返回一个数的绝对值 >>> num3=-22 >>> num3.__abs__() 22 __add__                                   #两数相加 __and__                                   #两数按位与操作 __bool__                                  #求一个数的布尔

FIle类常用工具方法整理(持续更新)

1.递归遍历一个目录,获取所有文件名(也可以取到绝对路径) public static void traverse(String filePath, List<String> files) { if (StringUtils.isBlank(filePath)){ return ; } try{ File superFile = new File(filePath); if (superFile.exists()) { File[] fileList = superFile.listFiles

C# 调用、执行 js 方法

首先需要引用程序集 Microsoft Script Control 1.0 然后新建一个js文件,并写入相应的js方法 //执行JS文件 private void btnjs_Click(object sender, EventArgs e) { //读取js文件路径 string path = AppDomain.CurrentDomain.BaseDirectory + "JavaScript1.js"; //加载js文件的所有内容 保存到变量str2中 string str2

JS调用App方法及App调用JS方法

做App内嵌H5项目时,经常会遇到js与App的交互,最普遍的就是方法的互相调用,那么如何实现方法的互相调用呢? 写在前面: 如果只是小项目且后期扩大的可能性不大的时候,可以忽略,可如果是长期项目的话,那么就需要考虑以下一些问题了. 1. 方法命名规范. 如果考虑到以后会有大量的方法,那么规范化的命名就很重要了,规范化的命名,既保证了名字的唯一性又保证了代码的可读性方便开发过程,也方便后期维护.   举个栗子,  如果现在有一个方法,是关闭webview, js调用app的方法, 如果直接叫cl