# 常用工具
# 1. 深拷贝
function deepCopy(p, c) {
var c = c || {};
for (var i in p) {
if (typeof p[i] === 'object') {
c[i] = p[i].constructor === Array ? [] : {};
deepCopy(p[i], c[i]);
} else {
c[i] = p[i];
}
}
return c;
}
# 2.日期
/*时间格式化*/
Date.prototype.Format = function(fmt) {
var o = {
'M+': this.getMonth() + 1 /*月份*/,
'd+': this.getDate() /*日*/,
'h+': this.getHours() /*小时*/,
'm+': this.getMinutes() /*分*/,
's+': this.getSeconds() /*秒*/,
'q+': Math.floor((this.getMonth() + 3) / 3) /*季度*/,
S: this.getMilliseconds() /*毫秒*/,
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(
RegExp.$1,
(this.getFullYear() + '').substr(4 - RegExp.$1.length)
);
for (var k in o)
if (new RegExp('(' + k + ')').test(fmt))
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
);
return fmt;
};
/*IE浏览器不支持date(time),所以用此方法转换*/
function NewDate(fmt) {
/*首先将日期分隔 ,获取到日期部分 和 时间部分*/
var day = fmt.split(' ');
/*获取日期部分的年月日*/
var days = day[0].split('-');
/*获取时间部分的 时分秒*/
var mi = day[day.length - 1].split(':');
/*获取当前date类型日期*/
var date = new Date();
/*给date赋值 年月日*/
date.setUTCFullYear(days[0], days[1] - 1, days[2]);
/*给date赋值 时分秒 首先转换utc时区 :+8*/
date.setUTCHours(mi[0] - 8, mi[1], mi[2]);
return date;
}
# 3. 数相关的判断
/*为空判断*/
function isEmpty(s) {
switch (typeof(s)) {
case 'string':
return !s.length;
break;
case 'array':
case 'object':
for (var i in s) return false;
return true;
break;
case 'undefined':
return true;
break;
default:
return !s;
break;
}
}
/*数字判断*/
function isNumber(s) {
return typeof(s) == 'number' ? true : false;
}
/*整数判断*/
function isInt(s) {
var re = /^-?\d*$/;
return re.test(s);
}
/*正整数判断*/
function isUInt(s) {
var re = /^\d*$/;
return re.test(s) && s >= 0;
}
/*小数判断*/
function isDecimal(s, bit) {
if (!arguments[1]) bit = -1;
if (bit == -1) {
var re = /^-?\d*.?\d*$/;
return re.test(s);
} else {
var re = new RegExp('^-?\\d*.?\\d{0,' + bit + '}$');
return re.test(s);
}
}
/*正小数判断*/
function isUDecimal(s, bit) {
if (!arguments[1]) bit = -1;
if (bit == -1) {
var re = /^\d*.?\d*$/;
return re.test(s) && s >= 0;
} else {
var re = new RegExp('^\\d*.?\\d{0,' + bit + '}$');
return re.test(s) && s >= 0;
}
}
/*字符串判断*/
function isString(s) {
return typeof(s) == 'string';
}
/*========================/常用函数========================*/
js onkeyup replace 自动替换
检测浮点数 只能是整数或者小数
多余的就replace 掉 的表单验证
function checkFloatNum(obj)
{
//先把非数字的都替换掉,除了数字和.
obj.value = obj.value.replace(/[^\d.]/g,"");
//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");
//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");
//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}