//检查是否是日期格式 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 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); }