js常用自定义公共函数汇总

复制代码 代码如下:

  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";

  }

  }