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

5 years ago
/**
* 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;
}
};