js常用自定义公共函数汇总


Posted in Javascript onJanuary 15, 2014
String.prototype.trim = function(){ 
return this.replace(/(^\s*)|(\s*$)/g, ""); 
} //检查是否是日期格式 
function isDate(datestr){ 
var result = datestr.match(/((^((1[8-9]\d{2})|([2-9]\d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/); 
if(result==null){ 
return "no"; 
} 
return "yes"; 
} 
//此方法以上面效果一致 
function isDate2(datestr) { 
var result = datestr.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
if (result == null) 
return "no"; 
var d = new Date(result[1], result[3] - 1, result[4]); 
if((d.getFullYear() == result[1] && (d.getMonth() + 1) == result[3] && d.getDate() == result[4])){ 
return "yes"; 
} 
return "no"; 
} 
//判断输入的字符是否为中文 
function IsChinese(str){ 
if(str.length!=0){ 
reg=/^[\u0391-\uFFE5]+$/; 
if(!reg.test(str)){ 
// alert("对不起,您输入的字符串类型格式不正确!"); 
return "no"; 
} 
} 
return "yes"; 
} 

//判断是否为空 
function isEmpty(str){ 
if(str==null||typeof str=="undefined"||str.trim()==""){ 
return true; 
}else{ 
return false; 
} 
} 
//固定电话 
function testTelephone(phone){ 
var phone_reg = new RegExp(/^([+]{0,1}\d{3,4}|\d{3,4}-)?\d{7,8}$/); 
if(!phone_reg.test(phone)){ 
return "no"; 
} 
return "yes"; 
} 
//折扣 
function isDiscount(discount){ 
var phone_reg = new RegExp(/^(0([\.]\d{1,2})|1|1.00|1.0)$/); 
if(!phone_reg.test(discount)){ 
return "no"; 
} 
return "yes"; 
} 
//手机号码 
function testMobile(mobile){ 
var mobile_reg = new RegExp(/^0{0,1}1[0-9]{10}$/); 
if(!mobile_reg.test(mobile)){ 
return "no"; 
} 
return "yes"; 
} 
//QQ号码从10000开始 
function testQQ(qq){ 
var qq_reg = new RegExp(/^[1-9][0-9]{4,}$/); 
if(!qq_reg.test(qq)){ 
return "no"; 
} 
return "yes"; 
} 
//电子邮件 
function testEmail(email){ 
var email_reg = new RegExp(/^\w+([-+.]\w+)*@\w+([-.]\w+)*.\w+([-.]\w+)*$/); 
if(!email_reg.test(email)){ 
return "no"; 
} 
return "yes"; 
} 
//不带符号的正整数 
function testPlusDigit(digit){ 
var plusDigit_reg = new RegExp(/^\d+$/); 
if(!plusDigit_reg.test(digit)){ 
return "no"; 
} 
return "yes"; 
} 
//DOUBLE价格 
function testPriceFormat(str){ 
var priceFormatReg = new RegExp(/^\d+(.\d{1,2})?$/); 
if(!priceFormatReg.test(str)){ 
return "no"; 
} 
return "yes"; 
} 
//身份证 
function testIDCard(str){ 
var IDCardReg = new RegExp(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/); 
if(!IDCardReg.test(str)){ 
return "no"; 
} 
return "yes"; 
} 
//2012-06-19日期格式 
function testDate(str){ 
var dateReg = new RegExp(/(^\d{4}-[0,1][0-9]-[0-3][0-9]$)/); 
if(!dateReg.test(str)){ 
return "no"; 
} 
return "yes"; 
} 

//浮点数精确运算(加法) 
function accAdd(arg1,arg2){ 
var r1,r2,m,n; 
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0} 
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0} 
m=Math.pow(10,Math.max(r1,r2)); 
n=(r1>=r2)?r1:r2; 
return ((arg1*m+arg2*m)/m).toFixed(n); 
} 
Number.prototype.add = function (arg){ 
return accAdd(arg,this); 
} 
//浮点数精确运算(减法) 
function accSub(arg1,arg2){ 
return accAdd(arg1,-arg2); 
} 
Number.prototype.subtract = function (arg){ 
return accSub(this,arg); 
} 
//浮点数精确运算(乘法) 
function accMul(arg1,arg2) 
{ 
var m=0,s1=arg1.toString(),s2=arg2.toString(); 
try{m+=s1.split(".")[1].length}catch(e){} 
try{m+=s2.split(".")[1].length}catch(e){} 
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m) 
} 
Number.prototype.mul = function (arg){ 
return accMul(arg, this); 
} 
//浮点数精确运算(除法) 
function accDiv(arg1,arg2){ 
var t1=0,t2=0,r1,r2; 
try{t1=arg1.toString().split(".")[1].length}catch(e){} 
try{t2=arg2.toString().split(".")[1].length}catch(e){} 
with(Math){ 
r1=Number(arg1.toString().replace(".","")) 
r2=Number(arg2.toString().replace(".","")) 
return (r1/r2)*pow(10,t2-t1); 
} 
} 
Number.prototype.div = function (arg){ 
return accDiv(this, arg); 
} 
//限制输入数字 
function isNumber(e) { 
if ($.browser.msie) { 
if ( ((event.keyCode > 47) && (event.keyCode < 58)) || 
(event.keyCode == 8) ) { 
return true; 
} else { 
return false; 
} 
} else { 
if ( ((e.which > 47) && (e.which < 58)) || 
(e.which == 8) ) { 
return true; 
} else { 
return false; 
} 
} 
} 

//字符串长度截取 
function cutstr(str, len) { 
var temp; 
var icount = 0; 
var patrn = /[^\x00-\xff]/; 
var strre = ""; 
for (var i = 0; i < str.length; i++) { 
if (icount < len - 1) { 
temp = str.substr(i, 1); 
if (patrn.exec(temp) == null) { 
icount = icount + 1; 
} else { 
icount = icount + 2; 
} 
strre += temp; 
} else { 
break 
} 
} 
return strre + "..."; 
} 
//获取域名主机 
function getHost(url) { 
var host = "null"; 
if (typeof url == "undefined" || null == url) { 
url = window.location.href; 
} 
var regex = /^\w+\:\/\/([^\/]*).*/; 
var match = url.match(regex); 
if (typeof match != "undefined" && null != match) { 
host = match[1]; 
} 
return host; 
} 
//判断某个值是否在所在范围 
//rang=1 表示正整数[0,2147483647] 2表示float[0,3.4028235E38] 
//return= 'empty' 表示输入为空, 
function isRang(str,rang){ 
if(typeof str == "number"){ 
var num = Number(str); 
//判断是否在正整数范围 
if( rang == 1){ 
if(testPlusDigit(num)=="yes"){ 
if(num>=0&&num<=2147483647){ 
return "is_int"; 
}else{ 
return "is_not_int_rang"; 
} 
}else{ 
return "is_not_int"; 
} 
}else if(rang == 2){ 
if(testPriceFormat(num)=="yes"){ 
if(num>=0&&num<=3.4028235E38){ 
return "is_float"; 
}else{ 
return "is_not_float_rang"; 
} 
}else{ 
return "is_not_float"; 
} 
}else{ 
return "rang_is_not_right"; 
} 
}else{ 
return "is_not_number"; 
} 
}
Javascript 相关文章推荐
Javascript的IE和Firefox兼容性汇编(zz)
Feb 02 Javascript
JS隐藏参数post传值实例
Apr 18 Javascript
javascript 获取函数形参个数
Jul 31 Javascript
浅谈JavaScript 数据属性和访问器属性
Sep 01 Javascript
AngularGauge 属性解析详解
Sep 06 Javascript
详谈js中数组(array)和对象(object)的区别
Feb 27 Javascript
jQuery EasyUI Draggable拖动组件
Mar 01 Javascript
jquery.masonry瀑布流效果
May 25 jQuery
vue axios 简单封装以及思考
Oct 09 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
Oct 26 Javascript
Javascript地址引用代码实例解析
Feb 25 Javascript
详解Typescript里的This的使用方法
Jan 08 Javascript
js利用数组length属性清空和截短数组的小例子
Jan 15 #Javascript
JS网页图片按比例自适应缩放实现方法
Jan 15 #Javascript
javascript删除字符串最后一个字符
Jan 14 #Javascript
javascript制作loading动画效果 loading效果
Jan 14 #Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
Jan 14 #Javascript
如何动态的导入js文件具体该怎么实现
Jan 14 #Javascript
将查询条件的input、select清空
Jan 14 #Javascript
You might like
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
php监测数据是否成功插入到Mysql数据库的方法
2016/11/25 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
js中匿名函数的N种写法
2010/09/08 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
JS实现li标签的删除
2019/04/12 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
Scrapy框架使用的基本知识
2018/10/21 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
django 单表操作实例详解
2019/07/30 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
Tensorflow 实现释放内存
2020/02/03 Python
PyTorch的torch.cat用法
2020/06/28 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
.NET概念性的面试题
2012/02/29 面试题
物业管理个人自我评价
2013/11/08 职场文书
岗位职责的定义
2013/11/10 职场文书
档案接收函范文
2014/01/10 职场文书
诉前财产保全担保书
2014/05/20 职场文书
工作求职自荐信
2014/06/13 职场文书
财务总监岗位职责
2015/02/03 职场文书
房产证明范本
2015/06/19 职场文书