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 相关文章推荐
关于img的href和src取变量及赋值的方法
Apr 28 Javascript
jquery阻止后续事件只执行第一个事件
Jul 24 Javascript
Js与Jq 获取页面元素值的方法和差异对比
Apr 30 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
Mar 29 Javascript
Bootstrap每天必学之导航组件
Apr 25 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
May 19 Javascript
简单几步实现返回顶部效果
Dec 05 Javascript
jQuery中的siblings()是什么意思(推荐)
Dec 29 Javascript
详解react-webpack2-热模块替换[HMR]
Aug 03 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
使用koa2创建web项目的方法步骤
Mar 12 Javascript
JS正则表达式验证端口范围(0-65535)
Jan 06 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脚本
2006/11/26 PHP
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
合并table相同单元格的jquery插件分享(很精简)
2011/06/20 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
JS画线(实例代码)
2013/11/20 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
对python模块中多个类的用法详解
2019/01/10 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
经典c++面试题二
2015/08/14 面试题
旅游与环境专业求职信
2014/06/05 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
学雷锋日活动总结
2015/02/06 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
让生命充满爱观后感
2015/06/08 职场文书
班委竞选稿范文
2015/11/21 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang
JS实现扫雷项目总结
2021/05/19 Javascript