项目中常用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-06 07:54:09

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

常用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', data

Vuex的this.$store.commit和在Vue项目中引用公共方法

2018年11月22日 20:50:29 Funfction_Zero 阅读数 3230 1.在Vue项目中引用公共方法 作为一个新人小白,在使用vue的过程中,难免会遇到很多的问题,比如某个方法在很多组件中都能用的上,如果在每个组件上都去引用一次的话,会比较麻烦,增加代码量.怎么做比较好呢,话不多说直接看代码把 首先 要在main.js中引入公共js.然后,将方法赋在Vue的原型链上.像图中这样. 然后在需要的组件上去引入这个方法 mouted (){ //调用方法 this.common.l

C语言中常用计时方法总结

转自:http://blog.csdn.net/fz_ywj/article/details/8109368 C语言中常用计时方法总结 1. time() 头文件:time.h 函数原型:time_t time(time_t * timer) 功能:返回以格林尼治时间(GMT)为标准,从1970年1月1日00:00:00到现在的此时此刻所经过的秒数. 用time()函数结合其他函数(如:localtime.gmtime.asctime.ctime)可以获得当前系统时间或是标准时间. 用difft

String对象中常用的方法

String对象中常用的方法 1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码.strObj.charCodeAt(index)说明:index将被处理字符的从零开始计数的编号.有效值为0到字符串长度减1的数字.如果指定位置没有字符,将返回NaN.例如:      var  str = "ABC";      str.charCodeAt(0);结果:652.fromCharCode方法从一些Unicode字符串中返回一个字符串.String.fromCh

iOS项目中常用的第三方开源库

1.项目使用的第三方开源库 http://github.ibireme.com/github/list/ios/整理了比较常用的iOS第三方组件,以及github上的统计. 项目使用了CocoaPods(类似java中的maven)管理常用的第三方库,一些特殊的单独引用,下面介绍下比较好用的几个. (1)AFNetworking 目前比较推荐的iOS网络请求组件,默认网络请求是异步,通过block回调的方式对返回数据进行处理. 需要注意的是AFNetworking对服务器返回的ContentTy

话说最近CMDB项目中遇到的问题整理:类方法:classmethod、staticmethod

概述 最近在做一个项目:CMDB(Configuration Management Database)资产采集,由于当中涉及一个classmethod(类方法)方法,发现不会. 还有一个staticmethod(静态方法)方法一直不熟悉,所以从网上查阅的资料,加强理解,遂整理如下: @classmethod:类方法( 只在类中运行而不在实例中运行的方法) @staticmethod 经常有一些跟类有关系的功能但在运行时又不需要实例和类参与的情况下需要用到静态方法. 比如更改环境变量或者修改其他类

简析项目中常用的七参数转换法和四参数转换法以及涉及到的基本测量学知识

1.背景 在了解这两种转换方法时,我们有必要先了解一些与此相关的基本知识.我们有三种常用的方式来表示空间坐标,分别是:经纬度和高层.平面坐标和高层以及空间直角坐标. 2.经纬度坐标系(大地坐标系) 这里我首先要强调:天文坐标表示的经纬度和大地坐标系表示的经纬度是不同的.所以,同一个经纬度数值,在BJ54和WGS84下表示的是不同的位置,而以下我说的经纬度均指大地坐标系下的经纬度.大地坐标系是大地测量中以参考椭球面为基准面建立起来的坐标系.下面我跟大家大致谈谈其中涉及到的两个重要概念. 2.1大地

ssm项目中常用的上传文件

在项目中,上传文件一般是必不可少的,所以今天学到新的上传方式,就干脆将学习过的上传方式记录一下 一.表单直接上传图片 表单头要设置 <form action="" method="post" enctype="multipart/form-data"> 元素 <input type="file" name="dwfile" > 后端代码 @RequestMapping(value=&

项目中常用的SQL语句

摘要: 对于像我一样的菜鸟级别人物来说,接触的项目比较少,平常做的那些练习,包括三层中,一般也只能用到增删改查,当然这些增删改查语句是学数据库语句的入门,在百度上搜索一大堆,w3cschool中帮助文档也可以查阅. 这里是把平常用的增删改做一个小小总结,对一些小小项目也是比较适用的 ,当然,好记性不如烂笔头吗,这个时代纸质版的笔记感觉很欠缺,因为想要看的时候,你得找到那本书,而且要翻翻在哪里,感觉很不方便.并且电子版 的随便copy之类的都可以. 常用的sql语句(增删改查) 1.增加.插入语句