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 this 深入理解
Jul 30 Javascript
JavaScript实现表格排序方法
Jun 14 Javascript
jquery弹出框的用法示例(2)
Aug 26 Javascript
js中reverse函数的用法详解
Dec 26 Javascript
两种JS实现屏蔽鼠标右键的方法
Aug 20 Javascript
jQuery CSS3相结合实现时钟插件
Jan 08 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
Aug 20 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
Aug 12 Javascript
三种Webpack打包方式(小结)
Sep 19 Javascript
浅谈JS的原型和继承
May 08 Javascript
VueJS 取得 URL 参数值的方法
Jul 19 Javascript
JavaScript如何实现图片处理与合成
May 29 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
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
php zend 相对路径问题
2009/01/12 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
详解Python 最短匹配模式
2020/07/29 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
劳动之星获奖感言
2014/02/01 职场文书
学习决心书范文
2014/03/11 职场文书
离婚协议书标准格式
2014/10/04 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Python爬虫基础初探selenium
2021/05/31 Python
Python安装使用Scrapy框架
2022/04/12 Python