`
高军威
  • 浏览: 181093 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

常用js方法

阅读更多
·
1.回车触发事件 onkeydown="if(event.keyCode==13){checkVendor();}"

·
2.打开新的窗口事件 window.open(url,'_blank'); 


计算几天、几年、几个月后的日期
<%-- 
		计算日期
		type 1://一年后的日期  2://半年后的日期  3://三个月后的日期
	--%>
	function calculateDate(type)
	{
		var now_f = new Date().format("yyyyMMdd");
		var datetime;
		switch(type)
		{
			case 1://一年后的日期
				datetime = new Date(
					parseFloat(Number(now_f.substr(0, 4))+1),
					parseFloat(now_f.substr(4, 2) - 1),
					parseFloat(now_f.substr(6, 2)),
					parseFloat('00'),
					parseFloat('00'),
					parseFloat('00')
				);
			  break;
			case 2://半年后的日期
				datetime = new Date(
					parseFloat(now_f.substr(0, 4)),
					parseFloat(Number(now_f.substr(4, 2)-1)+6),
					parseFloat(now_f.substr(6, 2)),
					parseFloat('00'),
					parseFloat('00'),
					parseFloat('00')
				);
			  break;
			case 3://三个月后的日期
				datetime = new Date(
					parseFloat(now_f.substr(0, 4)),
					parseFloat(Number(now_f.substr(4, 2)-1)+3),
					parseFloat(now_f.substr(6, 2)),
					parseFloat('00'),
					parseFloat('00'),
					parseFloat('00')
				);
			  break;
		}
		$("#per_valid").val(datetime.format("yyyy-MM-dd"));
	}


/**
 * js bug:解决 javascript 的 小数截取的bug。<br>
 * bug: alert(parseFloat(0.006).toFixed(2)); 显示 0.00 修改后显示 0.01
 */
Number.prototype.toFixed = function(d) {
	var s = this + "";
	if (!d)
		d = 0;
	if (s.indexOf(".") == -1)
		s += ".";
	s += new Array(d + 1).join("0");
	if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0," + (d + 1) + "})?)\\d*$").test(s)) {
		var s = "0" + RegExp.$2, pm = RegExp.$1, a = RegExp.$3.length, b = true;
		if (a == d + 2) {
			a = s.match(/\d/g);
			if (parseInt(a[a.length - 1]) > 4) {
				for ( var i = a.length - 2; i >= 0; i--) {
					a[i] = parseInt(a[i]) + 1;
					if (a[i] == 10) {
						a[i] = 0;
						b = i != 1;
					} else
						break;
				}
			}
			s = a.join("").replace(new RegExp("(\\d+)(\\d{" + d + "})\\d$"),
					"$1.$2");
		}
		if (b)
			s = s.substr(1);
		return (pm + s).replace(/\.$/, "");
	}
	return this + "";
};

// 给Number类型增加四则运算
/**
 * js bug:js四则运算小数精度丢失的bug修复。例如:1.5451+0.34133
 * 按理来说应该是等于1.88643,结果JS给计算时居然算成1.88629999999998了 调用方法
 */
/**
 * 加法:1.5451+0.34133 的调用方法为:var s = (1.5451).add(0.34133).toFixed(2);
 * alert((7.1).add(12.00027)+"="+(7.1+12.00027));
 */
Number.prototype.add = function(arg) {
	var bit1, bit2, m;
	try {
		bit1 = arg.toString().split(".")[1].length;
	} catch (e) {
		bit1 = 0;
	}
	try {
		bit2 = this.toString().split(".")[1].length;
	} catch (e) {
		bit2 = 0;
	}
	m = Math.pow(10, Math.max(bit1, bit2));
	return (this * m + arg * m) / m;
};
/**
 * 减法: 1.5451-0.34133 的调用方法为:var s = (1.5451).sub(0.34133);
 */
Number.prototype.sub = function(arg) {
	var bit1, bit2;
	try {
		bit1 = arg.toString().split(".")[1].length;
	} catch (e) {
		bit1 = 0;
	}
	try {
		bit2 = this.toString().split(".")[1].length;
	} catch (e) {
		bit2 = 0;
	}
	var n = Math.max(bit1, bit2);
	var m = Math.pow(10, n);
	return Number(((this * m - arg * m) / m).toFixed(n));
};
/**
 * 乘法: 1.5451*0.34133 的调用方法为:var s = (1.5451).mul(0.34133).toFixed(3);
 */
Number.prototype.mul = function(arg) {
	var bit1, bit2;
	try {
		bit1 = arg.toString().split(".")[1].length;
	} catch (e) {
		bit1 = 0;
	}
	try {
		bit2 = this.toString().split(".")[1].length;
	} catch (e) {
		bit2 = 0;
	}
	var m = bit1 + bit2;
	// var n = (bit1 > bit2) ? bit1 : bit2;
	return (Number(this.toString().replace(".", ""))
			* Number(arg.toString().replace(".", "")) / Math.pow(10, m));// .toFixed(n);
};
/**
 * 除法: 1.5451/0.34133 的调用方法为:var s = (1.5451).div(0.34133).toFixed(3);
 */
Number.prototype.div = function(arg) {
	var bit1, bit2;
	try {
		bit1 = arg.toString().split(".")[1].length;
	} catch (e) {
		bit1 = 0;
	}
	try {
		bit2 = this.toString().split(".")[1].length;
	} catch (e) {
		bit2 = 0;
	}
	var n = Math.max(bit1, bit2);
	var m = Math.pow(10, n);
	// return (Number(this.toString().replace(".", ""))*m) /
	// (Number(arg.toString().replace(".", ""))*m);
	return ((this * m) / (arg * m));
};

// 给String对象增加四则运算
/**
 * 加法:1.5451+0.34133 的调用方法为:var s = (1.5451).add(0.34133).toFixed(2);
 * alert((7.1).add(12.00027)+"="+(7.1+12.00027));
 */
String.prototype.add = function(arg) {
	return Number(this).add(arg);
};
/**
 * 减法: 1.5451-0.34133 的调用方法为:var s = (1.5451).sub(0.34133);
 */
String.prototype.sub = function(arg) {
	return Number(this).sub(arg);
};
/**
 * 乘法: 1.5451*0.34133 的调用方法为:var s = (1.5451).mul(0.34133).toFixed(3);
 */
String.prototype.mul = function(arg) {
	return Number(this).mul(arg);
};
/**
 * 除法: 1.5451/0.34133 的调用方法为:var s = (1.5451).div(0.34133).toFixed(3);
 */
String.prototype.div = function(arg) {
	return Number(this).div(arg);
};
/**
 * 处理html转义 调用方法为:var s = "aaa".escape("aaa");
 */
String.prototype.escape = function (html){
	var codeSpan = /(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm;
	var codeBlock = /(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g;
	var spans = [];
	var blocks = [];
	var text = String(html).replace(/\r\n/g, '\n').replace('/\r/g', '\n');
	text = '\n\n' + text + '\n\n';
	texttext = text.replace(codeSpan, function(code){
		spans.push(code);
		return '`span`';
	});
	text += '~0';
	return text.replace(codeBlock, function(code){
		blocks.push(code);
		return '\n\tblock';
	}).replace(/&(?!\w+;)/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/`span`/g, function(){
		return spans.shift();
	}).replace(/\n\tblock/g, function(){
		return blocks.shift();
	}).replace(/~0$/, '').replace(/^\n\n/, '').replace(/\n\n$/, '');
};

// 等比例缩放图片
//var flag = false;
/**
 * ImgD:原图 maxWidth:允许的最大宽度 maxHeight:允许的最大高度
 */
function resizeimg(ImgD, maxWidth, maxHeight) {
	//ImgD.style.display="none"; //隐藏加到这儿不管用,应该放到img标签中
	var image = new Image();
	var iwidth = maxWidth; // 定义允许图片宽度
	var iheight = maxHeight; // 定义允许图片高度
	image.src = ImgD.src;
	if (image.width > 0 && image.height > 0) {
		//flag = true;
		if (image.width / image.height >= iwidth / iheight) {
			if (image.width > iwidth) {
				ImgD.width = iwidth;
				ImgD.height = (image.height * iwidth) / image.width;
			} else {
				ImgD.width = image.width;
				ImgD.height = image.height;
			}
			//ImgD.alt = image.width + "×" + image.height;
		} else {
			if (image.height > iheight) {
				ImgD.height = iheight;
				ImgD.width = (image.width * iheight) / image.height;
			} else {
				ImgD.width = image.width;
				ImgD.height = image.height;
			}
			//ImgD.alt = image.width + "×" + image.height;
		}
	}
	centerImage(ImgD, maxWidth, maxHeight);
	ImgD.style.display="inline";
}
/**
 * Date:给日期对象添加格式化方法
 * 使用方法 var date = new Date().format('yyyy-MM-dd')
 */
Date.prototype.format = function(format){ 
	var o = {
		"M+" : this.getMonth()+1, //month
		"d+" : this.getDate(), //day
		"h+" : this.getHours(), //hour
		"m+" : this.getMinutes(), //minute
		"s+" : this.getSeconds(), //second
		"q+" : Math.floor((this.getMonth()+3)/3), //quarter
		"S" : this.getMilliseconds() //millisecond
	} 
	if(/(y+)/.test(format)) {
		format = format.replace(RegExp.$1, (this.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;
}


function centerImage(imgD, maxWidth, maxHeight) {
	// var div = imgD.parentNode;// 获取包含本图片的div不用这个
	if (imgD.height < maxHeight) {
		var top = (maxHeight - imgD.height) / 2-2;
		//ie6不支持这么获取高度,所以ie6下不执行
		if(imgD.height!=0){
			imgD.style.marginTop = top + "px";
		}
	}
	if (imgD.width < maxWidth) {
		var left = (maxWidth - imgD.width) / 2;
		//ie6不支持这么获取宽度,所以ie6下不执行
		if(imgD.width!=0){
			imgD.style.marginLeft = left + "px";
		}
	}
}
/**
 * 将字符串格式的日期(如:20150415092645)转换成js Date对象
 * 注意Date对象的初始化方式
 * */
function js_patch_getdate(stime) {
	var datetime = new Date(
			parseFloat(stime.substr(0, 4)),
			parseFloat(stime.substr(4, 2) - 1),
			parseFloat(stime.substr(6, 2)),
			parseFloat(stime.substr(8, 2)),
			parseFloat(stime.substr(10, 2)),
			parseFloat(stime.substr(12, 2)));
	return datetime;
}
function js_patch_fillZero(num, digit) {
	var str = '' + num;
	while (str.length < digit) {
		str = '0' + str;
	}
	return str;
}	
function debug_showAttr(obj)
{
	var str="<b>begin:the attribute of "+obj+"</b><br/>";
	for(var i in obj)
	{
		str+="<b>"+i+"</b>=="+obj[i]+"<br>";
	}
	document.body.innerHTML+=str;
}
function debug_showMsg(str)
{
	document.body.innerHTML+=str;
}
function debug_showMsgSrc(str)
{
	document.body.innerHTML+=str.replace(/</g,"&lt").replace(/>/g,"&gt");
}
分享到:
评论

相关推荐

    常用js方法封装

    在这个"常用js方法封装"的项目中,我们可以期待看到以下几类JavaScript方法的封装: 1. 链式操作:通过return this机制,实现方法之间的链式调用,如$.extend()在jQuery中就是这样实现的,可以连续设置多个属性或...

    项目开发常用的JS方法

    里面包含6个JS函数,有获取设备类型、获取url参数、格式化时间戳、复制到粘贴板、去除首位空格、获取cookie。可供学习使用

    javascript常用函数 javascript 常用库

    在JavaScript的常用库中,我们可以找到许多方便的公共方法,这些方法极大地提高了开发效率。 一、JavaScript常用函数 1. 数组操作函数 - `push()`: 向数组末尾添加一个或多个元素,并返回新长度。 - `pop()`: ...

    常用Javascript方法与技巧

    在JavaScript编程中,掌握常用的方法和技巧是至关重要的。以下是一些核心知识点的详细说明: 1. **创建脚本块**:在HTML中,我们通常使用`&lt;script&gt;`标签来插入JavaScript代码。例如: ```html &lt;script language="...

    js常用技术,包括一些常用方法

    本资源包“JavaScript常用技术”包含了图片处理特效、文字特效以及一系列常用的JavaScript方法,是开发者学习和实践JavaScript技术的宝贵资料。 一、图片处理特效 在Web开发中,图片处理是不可或缺的一部分。...

    javascript常用对象及方法

    javascript常用对象及方法 javascript中有许多常用的对象和方法,了解这些对象和方法可以帮助我们更好地使用javascript。下面我们将详细介绍这些对象和方法。 一、窗口对象Window Window对象是javascript中的顶级...

    js常用方法(js常用鼠标事件和其对应的方法)

    JavaScript(简称JS)是一种轻量级的脚本语言,常用于...通过理解这些基本的JavaScript方法和事件,开发者可以创建丰富的交互式网页应用,提高用户体验。熟练掌握这些知识将有助于你在JavaScript编程中更加得心应手。

    常用JS方法

    常用的JS方法,处理了浏览器兼容性 getElement(name); getElements(name); getElementsByTagName(name);

    Javascript中字符串相关常用的使用方法总结

    ### JavaScript中字符串相关常用的使用方法总结 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,被大量应用于Web开发之中。其中,字符串处理是非常重要的一个方面,涉及到数据的读取、修改、拼接等操作。...

    js常用方法大全,比较详细

    本篇文章将详细探讨JS的常用方法,旨在为开发者提供一个全面的参考。 一、变量声明与类型转换 在JavaScript中,我们可以使用`var`, `let`, 和 `const` 关键字来声明变量。`var` 是老式的声明方式,具有变量提升...

    js常用方法总结

    总的来说,理解和熟练运用这些JavaScript方法和CSS定位属性,能够帮助开发者更好地控制网页元素的显示和交互,提升用户体验。在实际开发中,还需要结合其他技术如DOM操作、事件处理等,才能构建出功能丰富的Web应用...

    js大全,包括所有的js方法

    ### 常用JavaScript方法概述 #### 1. 字符串方法 字符串是JavaScript中最常用的数据类型之一。下面列举了一些常用的字符串方法: - **charAt()**:返回指定位置的字符。 - **indexOf() / lastIndexOf()**:返回...

    js常用属性方法

    ### JS常用属性与方法详解 JavaScript(简称JS)是一种广泛使用的、基于原型的脚本语言,主要用于网页开发,提供交互性和动态更新的能力。在JS中,掌握数组的属性和方法对于编写高效、灵活的代码至关重要。 #### ...

    js-常用方法列表

    根据提供的文件信息,本文将对JavaScript(简称JS)中的几个常用方法进行详细的解析与说明,主要包括获取好友列表、获取个人信息以及获取照片列表的功能实现。这些功能通常在社交应用开发中非常常见,通过JavaScript...

    归纳常用 js 方法,减少开发查找阻力

    能用就行

    js常用帮助方法集

    一个常用的js帮助类,里面有一些常用的js方法,可以直接引用,也可以把需要的方法复制到自己的js中

    javascript常用方法实例

    在这个“javascript常用方法实例”中,我们将会探讨一些JavaScript的核心概念和常用方法,以及它们在实际应用场景中的实例。 1. **DOM操作**:Document Object Model(DOM)是HTML和XML文档的结构化表示,...

    第11节 JavaScript数组常用方法及应用.rar

    第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11节 JavaScript数组常用方法及应用.rar第11...

Global site tag (gtag.js) - Google Analytics