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"; } }
js常用自定义公共函数汇总
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@