You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

151 lines
4.6 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* Created by guojie on 2015/1/24.
* 静态工具类
*/
var Utils = {};
//处理字符串
Utils.String = {
//修剪两端空白字符和换行符
trim:function (s){
return s.replace(/(^\s*)|(\s*$)|(\n)/g, "");
},
//修剪左端空白字符和换行符
leftTrim:function (s){
return s.replace(/(^\s*)|(^\n)/g, "");
},
//修剪右端空白字符和换行符
rightTrim:function (s){
return s.replace(/(\s*$)|(\n$)/g, "");
},
// 是否是URL
isUrl: function(s) {
//var p = /^((https|http|ftp|rtsp|mms)?:\/\/)(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]$)|([0-9a-z_!~*'()-]+\.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6})(:[0-9]{1,6})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/;
var p = /^((https|http|ftp|rtsp|mms)?:\/\/)[A-Za-z0-9-]+\.[A-Za-z0-9-]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
s = s.toLowerCase();
return p.test(s);
},
//格式化数字
numberFormat:function (s,l){
if (!l || l < 1)l = 3;
s=String(s).split(".");
s[0]=s[0].replace(new RegExp('(\\d)(?=(\\d{'+l+'})+$)','ig'),"$1,");
return s.join(".");
},
//字母类型检测
isString:function (s){
var patrn=/^([a-z]|[A-Z])+$/;
return patrn.exec(s);
},
//浮点数类型检测
isNumber:function (s){
var patrn=/^\d+\.\d+$/;
return patrn.exec(s);
},
//整数类型检测
isInt:function (s){
var patrn=/^-?\d+$/;
return patrn.exec(s);
},
//正整数类型检测
isUint:function (s){
var patrn=/^\d+$/;
return patrn.exec(s);
},
//星号字节
asteriskByte:function(s,start,end)
{
var startStr = start?s.substr(0,start):"";
var endStr = end?s.substr(end+1):"";
var star = "",l;
l = !start && !end?s.length:(start && !end?s.length - start:end);
while(star.length < l)star += "*";
return startStr + star + endStr;
},
//四舍五入保留n位小数(默认保留两位小数)
twoDecimalPlaces:function(s,l)
{
if (isNaN(parseFloat(s))||s==0) return "0.00";
var bit = !l?100:Math.pow(10,l);
var str = String(Math.round(s * bit) / bit);
while (str.indexOf(".") != -1 && str.length <= str.indexOf(".") + l)str += '0';
return str;
}
};
//获取地址栏参数
Utils.getQueryString = function(attr)
{
var parameter = window.location.search;
var reg = new RegExp(attr+"=([^&]*)")
var result = parameter.substr(1).match(reg);
return (result!=null&&result.length>1)?result[1]:null;
}
//滚动到页面底部
Utils.isScrollBottom = function()
{
var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;
var clientHeight = document.documentElement.clientHeight;
if(scrollTop + clientHeight >= document.body.scrollHeight) return true;
return false;
}
//设置cookie
Utils.setCookie = function(name,value,iDay)
{
//当前时间和过期时间相加
var date = new Date();
date.setDate(date.getDate()+iDay);
//给cookie赋值
document.cookie = name+"="+value+";expires="+date;
}
//获取cookie
Utils.getCookie = function(name)
{
//cookie转换成数组
var arr = document.cookie.split("; ");
for(var i = 0; i<arr.length;i++)
{
//每个数组元素再进行分割,第一个是名字第二个是值
var arr2 = arr[i].split("=");
//只需判断名字存在就把值反出去
if(name == arr2[0])return arr2[1];
}
//当前搜索的cookie不存在返回空值
return null;
}
//删除cookie
Utils.removeCookie = function(name)
{
//在设置的时候让他的时间过期预览器将自动清除过期的cookie
setCookie(name,"",-1);
}
//获取json数据长度
Utils.getJsonLength = function(json)
{
var len = 0,key;
for(key in json)len++;
return len;
}
//小于ie9以下的古老ie
Utils.antiIE = function () {
var ua = window.navigator.userAgent;
this.browser = {};
/* jshint ignore:start */
var reg = new RegExp('MSIE ([0-9]{1,}[\.0-9]{0,})');
/* jshint ignore:end */
var IEVersion;
if (ua.match(reg)) {
this.browser.msie = true;
IEVersion = parseFloat(ua.match(reg)[1]);
if (IEVersion < 9) {
alert('您还在使用老旧的IE' + IEVersion +'浏览器,部分功能将不被支持,建议升级浏览器试试吧~');
}
} else {
this.browser.msie = false;
}
};