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 相关文章推荐
破除网页鼠标右键被禁用的绝招大全
Dec 27 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
Dec 15 Javascript
jquery 之 $().hover(func1, funct2)使用方法
Jun 14 Javascript
js获取当前时间显示在页面上并每秒刷新
Dec 24 Javascript
javascript针对cookie的基本操作实例详解
Nov 30 Javascript
jquery插件uploadify实现带进度条的文件批量上传
Dec 13 Javascript
Webpack中雪碧图插件使用详解
May 25 Javascript
vue动态改变背景图片demo分享
Sep 13 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
Oct 20 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
Apr 22 Javascript
JavaScript:ES2019 的新特性(译)
Aug 08 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
Oct 25 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删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
php判断正常访问和外部访问的示例
2014/02/10 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
javascript计时器详解
2015/02/28 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
Highcharts入门之简介
2016/08/02 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
python django 增删改查操作 数据库Mysql
2017/07/27 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
python+logging+yaml实现日志分割
2019/07/22 Python
python 实现关联规则算法Apriori的示例
2020/09/30 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
2015年药房工作总结
2015/04/25 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL
python区块链持久化和命令行接口实现简版
2022/05/25 Python