// 重复字符串
string.prototype.repeat = function(n) {
return new array(n+1).join(this);
}
// 替换全部
string.prototype.replaceall = function(str1, str2) {
return this.replace(new regexp(str1, gm), str2);
}
// 清除空格
string.prototype.trim = function() {
return this.replace(/^\s*(.*?)\s+$/, $1);
}
// 计算数组中的最大值
array.prototype.max = function() {
return math.max.apply({}, this);
}
// 计算数组中的最小值
array.prototype.min = function() {
return math.min.apply({}, this);
}
// 复制数组
array.prototype.copy = function() {
return [].concat(this);
};
// 去除数组中指定元素,只能去除一个,如果想多个,之前先用unique处理
array.prototype.remove = function(value){
for (var i = 0, len = this.length; i < len; i++) {
if (this[i] == value) {
this.splice(i, 1);
break;
}
}
return this;
}
// 判断数组中是否存在指定元素,返回索引值
array.prototype.inarray = function(value) {
var index = -1, key;
for (key in this) {
if (this[key] == value) {
index = key;
break;
}
}
return index;
}
// 去除数组中的重复元素
array.prototype.unique = function() {
var key, ret = [];
for (key in this) {
if (ret.inarray(this[key]) < 0) {
ret.push(this[key]);
}
}
return ret;
}
// 检测是否已经安装flash,检测flash的版本
var flashversion = (function() {
var version;
try {
version = navigator.plugins['shockwave flash'];
version = version.description;
} catch (ex) {
try {
version = new activexobject('shockwaveflash.shockwaveflash')
.getvariable('$version');
} catch (ex2) {
version = '0.0';
}
}
version = version.match(/\d+/g);
return parsefloat(version[0] + '.' + version[1], 10);
})();
// 检测是否支持transition
var supporttransition = (function() {
var s = document.createelement('p').style,
r = 'transition' in s ||
'webkittransition' in s ||
'moztransition' in s ||
'mstransition' in s ||
'otransition' in s;
s = null;
return r;
})();
// 判断浏览器是否支持图片的base64
var issupportbase64 = (function() {
var data = new image();
var support = true;
data.onload = data.onerror = function() {
if (this.width != 1 || this.height != 1) {
support = false;
}
return support;
};
data.src = data:image/gif;base64,r0lgodlhaqabaiaaaaaaap///ywaaaaaaqabaaacauwaow==;
})();
// 首字母大写
function ucfirst(str) {
return str.charat(0).touppercase() + str.slice(1);
}
// 清除左空格
function ltrim(str) {
return str.replace(/^(\s*| *)/, );
}
// 清除右空格
function rtrim(str) {
return str.replace(/(\s*| *)$/, );
}
// 设置cookie值
function setcookie(name, value, hours, path, domain) {
var d = new date();
var offset = 8;
var utc = d.gettime() + (d.gettimezoneoffset() * 60000);
var nd = utc + (3600000 * offset);
var expire = new date(nd);
expire.settime(expire.gettime() + hours * 60 * 60 * 1000);
var path = path || ;
var domain = domain || ;
document.cookie = name + = + escape(value) + ;path=+ path +;expires= + expire.togmtstring() + ;domain=+ domain +;
}
// 获取cookie值
function getcookie(name) {
var arr = document.cookie.match(new regexp((^| ) + name + =([^;]*)(;|$)));
if (arr != null) {
return unescape(arr[2]);
}
return null;
}
// 删除cookie值
function removecookie(name) {
setcookie(name, , -1);
}
// 生成范围随机数
function rand(n, m) {
return math.random() * (m - n) + n;
}
// 加入收藏夹
function addfavorite(url, title) {
try {
window.external.addfavorite(url, title);
} catch(e) {
try {
window.sidebar.addpanel(title, url, );
} catch(e) {
alert(加入收藏失败,请使用ctrl+d进行添加);
}
}
}
// 设为首页
function sethomepage(url) {
if (document.all) {
document.body.style.behavior = 'url(#default#homepage)';
document.body.sethomepage(url);
} 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', url);
}
}
// 加载样式文件
function loadstyle(url) {
try {
document.createstylesheet(url);
} catch(e) {
var csslink = document.createelement('link');
csslink.rel = 'stylesheet';
csslink.type = 'text/css';
csslink.href = url;
var head = document.getelementsbytagname('head')[0];
head.appendchild(csslink)
}
}
// 清除脚本内容
function stripscript(str) {
return str.replace(/.*?/ig, '');
}
// 检验url链接是否有效
function geturlstate(url) {
var xmlhttp = new activexobject(microsoft.xmlhttp);
xmlhttp.open(get, url, false);
try {
xmlhttp.send();
} catch(e) {
} finally {
var result = xmlhttp.responsetext;
if (result) {
if (xmlhttp.status == 200) {
return true;
} else {
return false;
}
} else {
return false;
}
}
}
// 格式化css代码
function formatcss(str){
str = str.replace(/\s*([\{\}\:\;\,])\s*/g, $1);
str = str.replace(/;\s*;/g, ;); //清除连续分号
str = str.replace(/\,[\s\.\#\d]*{/g, {);
str = str.replace(/([^\s])\{([^\s])/g, $1 {\n\t$2);
str = str.replace(/([^\s])\}([^\n]*)/g, $1\n}\n$2);
str = str.replace(/([^\s]);([^\s\}])/g, $1;\n\t$2);
return str;
}
// 压缩css代码
function compresscss (str) {
str = str.replace(/\/\*(.|\n)*?\*\//g, ); //删除注释
str = str.replace(/\s*([\{\}\:\;\,])\s*/g, $1);
str = str.replace(/\,[\s\.\#\d]*\{/g, {); //容错处理
str = str.replace(/;\s*;/g, ;); //清除连续分号
str = str.match(/^\s*(\s+(\s+\s+)*)\s*$/); //去掉首尾空白
return (str == null) ? : s[1];
}
// getelementsbyclassname
function getelementsbyclassname(name, context) {
var context = context || document;
if (context.getelementsbyclassname) {
return context.getelementsbyclassname(name);
}
var nodes = context.getelementsbytagname(*), nodeslength = nodes.length, ret = [];
for (var i = 0; i < nodeslength; i++) {
var classname = nodes[i].classname;
if (nodes[i].nodetype == 1 && classname) {
var classes = classname.split(' ');
for (var j = 0; j 47 && ikey 64 && ikey 95 && ikey 108 && ikey 185 && ikey 218 && ikey < 223) {return true;} /*符号2*/
return false;
}
// 获得url中get参数值
function getparams() {
var querystr = window.location.href.split(?);
var params = [];
if (querystr[1]) {
var gets = querystr[1].split(&);
for (var i = 0; i 60) {
return false
}
return true;
}
// 检测变量类型是否为日期格式
function checkdate(str) {
var date = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if (date == null) {
return false;
}
var d = new date(r[1], r[3]-1, r[4]);
return (d.getfullyear() == r[1] && (d.getmonth()+1) == r[3] && d.getdate() == r[4]);
}
// 检测变量是否为长日期格式
function checkdatetime(str) {
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var dt = str.match(reg);
if (dt == null) {
return false;
}
var d = new date(dt[1], dt[3]-1, dt[4], dt[5], dt[6], dt[7]);
return (d.getfullyear() == dt[1] && (d.getmonth()+1) == dt[3] && d.getdate() == dt[4] && d.gethours() == dt[5] && d.getminutes() == dt[6] && d.getseconds() == dt[7]);
}
// 检测变量是否为未定义
function isundefined(val) {
return typeof val === 'undefined';
}
// 检测变量是否为定义
function isdefined(val) {
return typeof val !== 'undefined';
}
// 检测变量类型是否为对象
function isobject(val) {
return val !== null && typeof val === 'object';
}
// 检测变量类型是否为空对象
function isblankobject(val) {
return val !== null && typeof val === 'object' && !object.getprototypeof(val);
}
// 检测变量类型是否为字符串
function isstring(val) {
return typeof val === 'string';
}
// 检测变量类型是否为数字
function isnumber(val) {
return typeof val === 'number';
}
// 检测变量类型是否为日期
function isdate(val) {
return tostring.call(val) === '[object date]';
}
// 检测变量类型是否为函数
function isfunction(val) {
return typeof val === 'function';
}
// 检测变量类型是否为正则表达式
function isregexp(val) {
return tostring.call(val) === '[object regexp]';
}
// 检测变量是否window窗体对象
function iswindow(obj) {
return obj && obj.window === obj;
}
// 检测变量类型是否为布尔
function isboolean(val) {
return typeof val === 'boolean';
}
// 检测变量类型是否为文件对象
function isfile(obj) {
return tostring.call(obj) === '[object file]';
}
// 检测变量类型是否为表单对象
function isformdata(obj) {
return tostring.call(obj) === '[object formdata]';
}
// 检测变量类型是否为二进制对象
function isblob(obj) {
return tostring.call(obj) === '[object blob]';
}
// 转全角字符
function todbc(str) {
var result = ;
var len = str.length;
for (var i = 0; i = 0x0021 && code <= 0x007e) ? (code + 65248) : code;
//处理空格
code = (code == 0x0020) ? 0x03000 : code;
result += string.fromcharcode(code);
}
return result;
}
// 转半角字符
function tosbc(str) {
var result = ;
var len = str.length;
for (var i = 0; i = 0xff01 && code <= 0xff5e) ? (code - 65248) : code;
//处理空格
code = (code == 0x03000) ? 0x0020 : code;
result += string.fromcharcode(code);
}
return result;
}
// 全角半角转换
// angle: 0全到半,1半到全,其他不转化
function chgangle(str, angle) {
if (typeof str != string || str.length 全*/
for (i = 0, len = str.length; i < len; i++) {
code = str.charcodeat(i);
if (code == 32) {
code = 12288;
} else if (code 半*/
for (i = 0, len = str.length; i 65280 && code < 65375) {
code -= 65248;
}
ret.push(string.fromcharcode(code));
}
}
return ret.join();
}
// 数据的本地化存储
function makewebstorage() {
//ie用userdata实现,w3c浏览器本身支持
if ((localstorage in window)) {
var store = {
set : function(key, value) {localstorage.setitem(key, value)},
get : function(key) {return localstorage.getitem(key)},
remove : function(key) {return localstorage.removeitem(key)}
}
} else {
var store = {
userdata : null,
name : location.hostname,
init : function () {
if (!store.userdata) {
try {
store.userdata = document.createelement('input');
store.userdata.type = hidden;
store.userdata.style.display = none;
store.userdata.addbehavior(#default#userdata);
document.body.appendchild(store.userdata);
var expires = new date();
expires.setdate(expires.getdate() + 365);
store.userdata.expires = expires.toutcstring();
} catch (e) {
return false;
}
}
return true;
},
setitem : function(key, value) {
if (store.init()) {
store.userdata.load(store.name);
store.userdata.setattribute(key, value);
store.userdata.save(store.name);
}
},
getitem : function(key) {
if (store.init()) {
store.userdata.load(store.name);
return store.userdata.getattribute(key);
}
},
remove : function(key) {
if (store.init()) {
store.userdata.load(store.name);
store.userdata.removeattribute(key);
store.userdata.save(store.name);
}
}
};
}
window.webstorage = store;
}
function makesessionstorage() {
if ((sessionstorage in window)) {
var store = {
set : function(key, value) {window.sessionstorage.setitem(key, value)},
get : function(key) {return window.sessionstorage.getitem(key)},
remove : function(key) {return window.sessionstorage.removeitem(key)}
}
} else {
var store = {
set : function(key, value) {},
get : function(key) {},
remove : function(key) {}
}
}
window.sessstorage = store;
}