我的Javascript

自己常用到的函数

//检测文件扩展名
function EuwCheckExt(path,extList){
 var ext = getFileExt(path);
 var cExt = extList.indexOf("," + ext + ",");
 if (ext == "") return -1;
 if (cExt){
  return 1;
 }else{
  return 0;
 }
}

//取得文件扩展名
function getFileExt(path){
 var tmp = path;
 tmp = tmp.substring(tmp.lastIndexOf(".")+1);
 return tmp.toUpperCase();
}

//操作样式
function init(a){
  var styleText1 = "";
    styleText1 +="font-family: Arial, Verdana;";
    styleText1 +="font-size: 18pt;";
    styleText1 +="font-weight: bold;";
    styleText1 +="font-style: italic;";
    styleText1 +="color: #33CC00;";
    //styleText1 +="background-color: #CCCC00;";
    styleText1 +="filter: DropShadow(Color=#000000, OffX=1, OffY=1, Positive=0);";
    tdTmp.style.cssText=styleText1;
}

//粘贴前过滤剪贴板数据
function EuwColorOnBeforePaste(objColor){
    clipboardData.setData('text',clipboardData.getData('text').replace(/[^a-fA-F0-9]/g,'').toUpperCase());
}

//颜色值输入
function EuwColorOnKeyUp(objColor){

    objColor.value=objColor.value.replace(/[^#a-fA-F0-9]/g,'').toUpperCase();

}

//setTimeout()应用
function loopshow(name){
 xxx.location="a.jpg";
 setTimeout("loopshow(" + name + ");",100);
}

//数字输入
function EuwCheckNumOnKeyUp(obj){
    obj.value=obj.value.replace(/[^0-9.]/g,'').toUpperCase();
}

//按比例缩放图片
var loadNum=0;
var loadTimes = 3;
checkShowSize = false;
function showsize()
{
 //document.upload.FILE1.value = trim(document.upload.FILE1.value);
 document.all.view.src = document.upload.FILE1.value;
 //alert(document.all.view.height + "x" + document.all.view.width + " -> " + document.all.view.fileSize);
 

 var diskuse = 5190970
 var quota = 5242880
    var maxfilesize = 512000;
    var showimg = new Image();
    Image.create(22,22).
    showimg.src = document.upload.FILE1.value;
    alert(showimg.fileSize);
    if(showimg.fileSize>0)
 {
  if(showimg.fileSize > maxfilesize)
  {
   alertmsg = "您选中的图片大于" + maxfilesize+ ",目前字节数=" + showimg.fileSize;
   return false;
  }

  if(showimg.fileSize > quota - diskuse) {
   alertmsg = "您选中的图片文件过大,或者相册已满";
   return false;
  }

  if(showimg.width > 100)
  {
   alert(showimg.width);
   var ori_w= showimg.width;
   var ori_h = showimg.height;
   showimg.width = 100;
   showimg.height = ori_h * showimg.width / ori_w;
  }

  if(showimg.width < 5 || showimg.height <5)
  {
   showimg.width = showimg.height = 150;
  }

  //document.all.view.src = showimg.src;
  document.all.view.style.width = showimg.width;
  document.all.view.style.height = showimg.height;
  checkShowSize = true;
  return true;
 } else if(loadNum<loadTimes) {
  loadNum ++ ;
  setTimeout('showsize()',500); 
 } else if(loadNum>=loadTimes){
  loadNum = 0;
  alertmsg = "图片字节数=0,请换张图片上传";
  return false;
 }
}

//字符串长度属性
String.prototype.len=function()
{
    return this.replace(/[^/x00-/xff]/g,"**").length;
}

//
日期自动补0
function appendZero(n){return(("00"+ n).substr(("00"+ n).length-2));}

//字符串去空格属性
function String.prototype.trim(){return this.replace(/(^/s*)|(/s*$)/g,"");}

//
打开一个全屏或者居中的窗口
function openwindow( url, winName,width,height,otherproperty)
{
   //width,height
   //otherproperty
   xposition=0; yposition=0;
   if ((parseInt(navigator.appVersion) >= 4 ))
   {
        if(width == 1)
        {
            width=screen.width - 10;
            height=screen.height - 55;
            xposition = 0;
            yposition = 0;
        }
        else
        {
            if (width < 1)
            {
                width=screen.width*width;
                height=screen.height*height;
            }
            xposition = (screen.width - width) / 2;
            yposition = (screen.height - height) / 2 - 15;
        }

      if (yposition < 0 )
      {
            yposition = 0;
      }
    }
    theproperty= "width=" + width + ", " + "height=" + height + ", "
        + "screenX=" + xposition + ", " //Netscape
        + "screenY=" + yposition + ", " //Netscape
        + "left=" + xposition + ", " //IE
        + "top=" + yposition + ", "; //IE

    theproperty = theproperty + "location=0, "
        + "menubar=0, "
        + "resizable=0, "
        + "scrollbars=1, "
        + "status=0, "
        + "toolbar=0, "
        + "hotkeys=0, ";
    theproperty = theproperty + ', ' + otherproperty;
    winobj=window.open( url,winName,theproperty );
    if (url == "about:blank")
    {
        winobj.document.writeln("<font face='Arial' color='red' size='4'>Loading.....</font>");
    }
    winobj.focus();
    return winobj;
}

//给定图片的最大高宽,取得缩放的比例
 function EuwResizeRatio(maxWidth,maxHeight, objImgTmp)
 {
    var hRatio;
    var wRatio;
    var Ratio = 1;
    var maxHeight;
    var maxWidth;
    var width = objImgTmp.width;
    var height = objImgTmp.height;
    wRatio = EuwStr2Float(maxWidth / width,2);
    hRatio = EuwStr2Float(maxHeight / height,2);
    if (wRatio<1 || hRatio<1){
        if (wRatio<=hRatio)
            Ratio = wRatio
        else
            Ratio = hRatio
    }
    return Ratio;
 }
//改进版本,结合setTimeout传递参数做法(脚本块中有此方法)
 function EuwResizeRatio(maxWidth,maxHeight,objImgTmp,srcImg)
{
    var hRatio;
    var wRatio;
    var Ratio = 1;
    var isKernel = true;
    if (objImgTmp==null) {isKernel = false};
    if (isKernel && objImgTmp.width==0) {isKernel = false};
    var width = 0;
    var height = 0;
    if (isKernel){
        width = objImgTmp.width;
        height = objImgTmp.height;
        wRatio = EuwStr2Float(maxWidth / width,2);
        hRatio = EuwStr2Float(maxHeight / height,2);
        //alert(wRatio + "--" + hRatio);
        if (maxWidth==0){//
            if (hRatio<1) Ratio = hRatio;
        }else if (maxHeight==0){
            if (wRatio<1) Ratio = wRatio;
        }else if (wRatio<1 || hRatio<1){
            Ratio = (wRatio<=hRatio?wRatio:hRatio);
        }
        width = width * Ratio;
        height = height * Ratio;
        if (Ratio<1){
         objImgTmp.width = width;
        objImgTmp.height = height;
        }
        if (srcImg!=null){
            srcImg.width = width;
            srcImg.height = height;
        }
    }else{
        var timer=window.setTimeout(EuwResizeRatio,100,maxWidth,maxHeight,objImgTmp,srcImg);
    }
}

我的Javascript(二)

function String.prototype.trim(){return this.replace(/(^/s*)|(/s*$)/g,"");}
function gf_AppendZero(n){return(("00"+ n).substr(("00"+ n).length-2));}//日期自动补零程序//

//取得当前系统日期时间
function gf_now()  
{
 var fs_now = new Date();
 var fs_return="";
 fs_return = fs_now.getFullYear() + "-" + gf_AppendZero(fs_now.getMonth() + 1) + "-" + gf_AppendZero(fs_now.getDate());
 fs_return +=" " + gf_AppendZero(fs_now.getHours()) + ":" + gf_AppendZero(fs_now.getMinutes()) + ":" + gf_AppendZero(fs_now.getSeconds());
 return fs_return;

//取得当前系统日期
function gf_today()  
{
 var fs_now = new Date();
 var fs_return="";
 fs_return = fs_now.getFullYear() + "-" + gf_AppendZero(fs_now.getMonth() + 1) + "-" + gf_AppendZero(fs_now.getDate());
 return fs_return;

//验证日期是否合法(true/false)
function  gf_chkdate(as_datestr) 

 var fs_year="";fs_mon="";fs_day="";fs_time="";fs_hour="";fs_min="";fs_sec="";fs_obj="";fs_syn="";
 var fi_loop,fi_len
 
 fi_len = as_datestr.length
 fs_obj = "year"
 if (fi_len<=0) return true;
 for (fi_loop=0;fi_loop<fi_len;fi_loop++ )
 {
  if (as_datestr.charAt(fi_loop)==" " && fs_obj == "day" ) fs_obj = "hour";
  if  (as_datestr.charAt(fi_loop)==  '-'|| as_datestr.charAt(fi_loop)==  '/')
  {
   if (fs_syn == "")
   {
    fs_syn = as_datestr.charAt(fi_loop)
   }
   else
   {
    if (fs_syn != as_datestr.charAt(fi_loop)) return false //没有用统一的"-"或"/"符号错误
   } 
   
   if (fs_obj == "year" )
   {
    fs_obj = "month"
   }
   else if (fs_obj == "month" )
   {
    fs_obj = "day"
   }
  }
  else if (as_datestr.charAt(fi_loop)==  ':')
  {
   if (fs_obj == "hour" )
   {
    fs_obj = "minute"
   }
   else if (fs_obj == "minute" )
   {
   fs_obj = "second"
   }
  }
  else //取出相应的值
  {
   if (!(as_datestr.charAt(fi_loop) >= 0 && as_datestr.charAt(fi_loop) <= 9)) return false
   if (fs_obj == "year" )
   {
    fs_year += as_datestr.charAt(fi_loop)
   }
   else if (fs_obj == "month" )
   {
    fs_mon += as_datestr.charAt(fi_loop)
   }
   else if (fs_obj == "day" )
   {
    fs_day += as_datestr.charAt(fi_loop)
   }
   else if (fs_obj == "hour" )
   {
    if (as_datestr.charAt(fi_loop)!= " ") fs_hour += as_datestr.charAt(fi_loop)
   }
   else if (fs_obj == "minute" )
   {
    fs_min += as_datestr.charAt(fi_loop)
   }
   else if (fs_obj == "second" )
   {
    fs_sec += as_datestr.charAt(fi_loop)
   }
  }
 }
    //验证时间的合法性
 if (fs_hour != "")
 {
  if ( fs_min == "" )
  {
   return false
  }
  else
  {
   if (fs_sec == "") fs_sec = "0"
  }
  if ( fs_hour > 24 || fs_hour < 0 || fs_min >= 60 || fs_min < 0 || fs_sec >= 60 || fs_sec < 0 )
  {
   return false //时间错误
  }
  if (fs_hour.length>2 || fs_min.length>2) return false
 }
 //验证日期的合法性
 if ( fs_year == "" || fs_mon=="" || fs_day=="" ) return false;
 if (fs_year.length == 2 )
 {
  fs_year = '20'+ fs_year;
 }
 else if (fs_year.length != 4 )
 {
  return false;
 }
 if ( fs_year.length > 4 || fs_mon.length > 2 || fs_day.length > 2 ) return false;
 if (!(fs_year>1901 && fs_year < 2999 && 1<=fs_mon  && 12>=fs_mon && 31>=fs_day && 1<=fs_day) ) return false;
 if (( fs_mon==4 || fs_mon==6 || fs_mon==9 || fs_mon==11 ) && (fs_day>30)) return false;
 if  ((fs_year % 4 == 0) && (fs_mon==2) && (fs_day > 29))   return false;
 if  (!(fs_year % 4 == 0) && (fs_mon==2) && (fs_day > 28))   return false;

 return true; 
}

//验证只能录入整数onkeypress
function gf_checkint()
{
if ((window.event.keyCode<48 || window.event.keyCode>57) && window.event.keyCode!=45 ) window.event.returnValue=false;
}

//验证只能录入实数onkeypress
function gf_checkobjfloat(objectname) 
{
if ((window.event.keyCode<45 || window.event.keyCode>57 || window.event.keyCode==47) && window.event.keyCode!=45)  window.event.returnValue=false;
if( window.event.keyCode==46 && objectname.value.indexOf(".")>-1) window.event.returnValue=false;
}


//验证不能为空的数据//
function gf_mandatory(as_prompt)

   //as_prompt:tbx_a,不能为空*tbx_b,不能为空*
   var fs_src = as_prompt;
   var fas_p = fs_src.split("*");
   var fas_n;
   for(var i=0;i<fas_p.length;i++)
   {
      if (fas_p[i]!="")
      {
         fas_n = fas_p[i].split(",");
         if (fas_n.length<2){alert("验证表达式有误,请检查");return false;}
         if (document.all(fas_n[0])==null){alert("Control Name:" + fas_n[0] + " is wrong!");return false;}
         if (gf_trim(document.all(fas_n[0]).value)=="")
         {
            alert(fas_n[1]);
            document.all(fas_n[0]).focus();
            return false;
         }
      }
   }
   return true;
}

//检查是否是数字,小数
function gf_chknum(ai_num) 

   var fi_i,fi_j,fi_dot,strTemp; 
   strTemp=".0123456789";
   fi_dot = 0;  //小数点个数
   if (ai_num.toString().length == 0) return false;
   if (ai_num.charAt(0) == "." || ai_num.charAt(ai_num.length - 1) == ".")  return false;
   for(fi_i=0;fi_i<ai_num.length;fi_i++) 
   { 
      fi_j = strTemp.indexOf(ai_num.charAt(i));             
      if (fi_j == -1) return false;
  if (ai_num.charAt(i) == ".")
      {
   fi_dot++;
   if (fi_dot>1) return false;
      }
   } 
   return true; 
}

//去除字符串的空格
function gf_trim(as_string)
{
   while(as_string.length > 0 && as_string.indexOf(" ")==0) as_string = as_string.substr(1);
   while(as_string.length > 0 && as_string.lastIndexOf(" ")==(as_string.length-1)) as_string = as_string.substr(0,as_string.length-1);
   return as_string;
}

//只能输入大写字符
function gf_lc2uc()
{
 if (window.event.keyCode>=97 & window.event.keyCode<=122 )
 {
  window.event.keyCode = window.event.keyCode - 32;
 }
}

/**
格式化日期函数
D--日期2004-12-25
DT--日期时间2004-12-25 12:05:56
**/
function gf_formatdate(as_date,as_datetype)
{
 //2003-11-12 11:25:13
 var fs_tmp = new Array();
 var fs_date = (as_date==null?"":gf_trim(as_date));
 var fs_datetype = (as_datetype==null?"D":"DT");
 if (fs_date=="") return fs_date;
 var fi_space = fs_date.indexOf(" ");
 var fs_ymd = fs_date.substr(0,fi_space);
 var fs_hms = fs_date.substr(fi_space+1);
   if (fs_ymd == "") {fs_ymd = fs_hms;fs_hms = "";}
 fs_tmp = fs_ymd.split("-");
 fs_ymd = (fs_tmp[0].length==2?("20" + fs_tmp[0]):fs_tmp[0]) + "-" + gf_AppendZero(fs_tmp[1]) + "-" + gf_AppendZero(fs_tmp[2]);
 if (fs_hms != "")
 {
    fs_tmp = fs_hms.split(":");
    fs_hms = " " + gf_AppendZero(fs_tmp[0]) + ":" + gf_AppendZero(fs_tmp[1]) + (fs_tmp.length==3?(":" + gf_AppendZero(fs_tmp[2])):"");
 }
 fs_date = fs_ymd + (fs_datetype=="D"?"":fs_hms);
 return fs_date;
}

//集装箱箱号验证
//Author: sundy 20003-4-28
//格式:gf_chkcntrno(as_cntrno, fi_choice ) return( boolean )
//功能:验证集装箱箱号:
//参数:
//   as_cntrno 是否符合国际标准,
//返回值:True 符合国际标准或强行通过(特殊箱号)
//举例:gf_chkcntrno( 'TEXU2982987', 0 )
     
function gf_chkcntrno(as_cntrno,ai_choice)
{
 var fi_ki;
 var fi_numsum;
 var fi_nummod;
 var fai_num = new Array(11);
 var fb_errcntrno=false;

 if (as_cntrno==null) return true; //null不进行验证
 if (gf_trim(as_cntrno)=="") return true; //空不进行验证
 
 if (as_cntrno.length == 11)   //国际标准为11位,最后一位是校验位,若不是11位肯定不是标准箱
 { for(fi_ki=1;fi_ki<=11;fi_ki++)
   fai_num[fi_ki] = 0;
  for(fi_ki=1;fi_ki<=4;fi_ki++)     //根据国际标准验证法则处理箱号前面的4个英文字母
  {
   fch_char=as_cntrno.charAt(fi_ki-1).toUpperCase();
   switch(true)
   { case (fch_char=="A"):{fai_num[fi_ki] = 10;break;}
    case (fch_char>="V" && fch_char<="Z"):{fai_num[fi_ki] = fch_char.charCodeAt() - 52;break;}
    case (fch_char>="L" && fch_char<="U"):{fai_num[fi_ki] = fch_char.charCodeAt() - 53;break;}
    default:{fai_num[fi_ki] = fch_char.charCodeAt() - 54;break;}
   }
  }
  for(fi_ki=5;fi_ki<=11;fi_ki++)
  {  fch_char=as_cntrno.charAt(fi_ki-1);
   fai_num[fi_ki] = parseInt(fch_char); //ctype((mid(as_cntrno, fi_ki, 1)), integer)
      }
  fi_numsum = 0
  
  for(fi_ki=1;fi_ki<=10;fi_ki++)
  { 
   fi_sqr = 1;
   for(i=1;i<fi_ki;i++){fi_sqr *=2;}
   fi_numsum += fai_num[fi_ki] * fi_sqr;
  }

  if (as_cntrno.substr(0,4) == "HLCU") fi_numsum = fi_numsum - 2; //hapaq lloyd的柜号与国际标准相差2
  fi_nummod = fi_numsum % 11;
  if (fi_nummod == 10) fi_nummod = 0;
  if (fi_nummod == fai_num[11]) fb_errcntrno = true;
  return fb_errcntrno;
 }else{
    return fb_errcntrno;
 }  
}


/*由于在Js中Replace只能替换一次,下面函数能全局替换2003.5.13 -sundy
as_expression --包含要替换的字符串
as_find --搜索的子字符串
as_replacement --要替换的字符串
替换字符串函数,如:"'"转换为"''"
*/
function gf_replace(as_expression,as_find,as_replacement)
{
   var fs_expression = as_expression;
   var fs_find = as_find;
   var fs_replacement = as_replacement;
   if (fs_expression == "") return "";
   if (fs_find == "") return "";
   //构造正则表达式/,$,(,),*,+,.,[,?,{,^,|为特殊字符,必须转义后替换
   fs_regx1 = gi;
   fs_find = fs_find.replace(fs_regx1,"
");
   fs_replacement = fs_replacement.replace(fs_regx1,"//");
  
   fs_regx1 = //$/gi;
   fs_find = fs_find.replace(fs_regx1,"
///$");
   fs_replacement = fs_replacement.replace(fs_regx1,"/$");        
   fs_regx1 = //(/gi;
   fs_find = fs_find.replace(fs_regx1,"
///(");
   fs_replacement = fs_replacement.replace(fs_regx1,"/(");        
   fs_regx1 = //)/gi;
   fs_find = fs_find.replace(fs_regx1,"
///)");
   fs_replacement = fs_replacement.replace(fs_regx1,"/)");        
   fs_regx1 = //*/gi;
   fs_find = fs_find.replace(fs_regx1,"
///*");
   fs_replacement = fs_replacement.replace(fs_regx1,"/*");        
   fs_regx1 = //+/gi;
   fs_find = fs_find.replace(fs_regx1,"
///+");
   fs_replacement = fs_replacement.replace(fs_regx1,"/+");
   fs_regx1 = //./gi;
   fs_find = fs_find.replace(fs_regx1,"
///.");
   fs_replacement = fs_replacement.replace(fs_regx1,"/.");
   fs_regx1 = //[/gi;
   fs_find = fs_find.replace(fs_regx1,"
///[");
   fs_replacement = fs_replacement.replace(fs_regx1,"/[");
   fs_regx1 = //?/gi;
   fs_find = fs_find.replace(fs_regx1,"
///?");
   fs_replacement = fs_replacement.replace(fs_regx1,"/?");
   fs_regx1 = //^/gi;
   fs_find = fs_find.replace(fs_regx1,"
///^");
   fs_replacement = fs_replacement.replace(fs_regx1,"/^");
   fs_regx1 = //{/gi;
   fs_find = fs_find.replace(fs_regx1,"
///{");
   fs_replacement = fs_replacement.replace(fs_regx1,"/{");
   fs_regx1 = //|/gi;
   fs_find = fs_find.replace(fs_regx1,"
///|");
   fs_replacement = fs_replacement.replace(fs_regx1,"/|");
   fs_find = "/" + fs_find + "/gi";

   //返回替换后的值
   return fs_expression.replace(eval(fs_find),fs_replacement);
}

/*Jun.14,2003--sundy
字符串转换为数字(""-->0)as_type--str,num
参数说明:as_str--转换的字符串
         ai_digit--转换的小数位数(null--不限制小数位数,0--转换为整型,>0按小数位数转换)
         as_type--转换后返回的类型(null,"num"--转换为数字类型,"str"--转换为字符串(按小数格式化后的字符串)
例如:
gf_str2float("10.2124568795")返回float类型10.2124568795
gf_str2float("10.6",0)返回Int类型11(使用四舍五入的方法)
gf_str2float("10.2",2)返回float类型10.1
gf_str2float("10.2",2,"str")返回String类型"10.20"(按小数位数格式化字符串)
gf_str2float("10.216",2)返回float类型10.22
gf_str2float("10.216",2,"str")返回String类型"10.22"
*/
function gf_str2float(as_str,ai_digit,as_type)
{
   var fdb_tmp = 0;
   var fi_digit = 0;
   var fs_digit = "1";
   var fs_str = "" + as_str;
   var fs_tmp1 = "";
   var fs_tmp2 = "";
   var fi_pos = 0;
   var fi_len = 0;
   fdb_tmp = parseFloat(isNaN(parseFloat(fs_str))?0:fs_str);
  
   switch (true)
   {
      case (ai_digit==null)://不改变值,只转换为数字
         fdb_tmp = fdb_tmp;
         break;
      case (ai_digit==0)://取得整数
         fdb_tmp = Math.round(fdb_tmp);
         break;
      case (ai_digit>0)://按照传入的小数点位数四舍五入取值
         for (var i=0;i<ai_digit;i++) fs_digit +="0";
         fi_digit = parseInt(fs_digit);
         fdb_tmp = Math.round(fdb_tmp * fi_digit) / fi_digit;
         if (as_type=="str")
         {
            fs_tmp1 = fdb_tmp.toString();
            fs_tmp1 +=((fs_tmp1.indexOf(".")!=-1)?"":".") + fs_digit.substr(1);
            fi_pos = fs_tmp1.indexOf(".") + 1 + ai_digit;
            fdb_tmp = fs_tmp1.substr(0,fi_pos);
         }
         break;
   }
   return fdb_tmp;
}

//打印数据
function gf_dgdprint(as_reportname,as_where,as_subtitle,as_footer)
{  //打印datagrid  --sherry 2003-08-19
   /*
   as_reportname--报表格式名  不能为空
   as_where--where 提取条件,形如" From cod_Driver Where Corp ='本单位' 不能为空
   as_subtitle --表头小标题
   as_footer--表尾,
   */
   var fs_Rpt_Property="width=" + (screen.width - 10) + ",height=" + (screen.height - 55) + ",left=0,top=0";
 if (as_reportname==null) as_reportname="";
 if (as_where==null) as_where="";
 if (as_subtitle==null) as_subtitle="";
 if (as_footer==null) as_footer="";
 var S_Rpt_ReportName=escape(as_reportname) ;
 var S_Rpt_Where=escape(as_where) ;
 var S_Rpt_SubTitle=escape(as_subtitle) ;
 var S_Rpt_Footer=escape(as_footer) ;
 var fs_parm = "";
 fs_parm += "?S_Rpt_ReportName=" + S_Rpt_ReportName  ;
 fs_parm += "&S_Rpt_Where=" + S_Rpt_Where ;
 fs_parm += "&S_Rpt_SubTitle=" + S_Rpt_SubTitle ;
 fs_parm += "&S_Rpt_Footer=" + S_Rpt_Footer  ;
   window.open( "../SysPublic/sys_printer.aspx" + fs_parm,"sys_printer",fs_Rpt_Property );
}

-----------------------------------------------------

/*进行消除字符串的空格*/
function Trim(str)
{
 if(str.charAt(0) == " ")
 {
  str = str.slice(1);
  str = Trim(str);
 }
 return str;
}
/*检查字符串是否是空值*/
function isEmpty(str)
{
  var trimstr_value=Trim(str)
  if(trimstr_value==""||trimstr_value==null)
  {
     return true
  }
  return false;
}
/*检查单个字符是否是数字*/
function isValidNum(str)
{
  return ((str>=0)&&(str<=9));
}

/*检查字符串是否是数字类型*/
function isNumStr(str)
{
  var i;
  var leng=str.length;
  for(i=0;i<leng;i++)
  {
    var vchar=str.substr(i,1);
    if((vchar=="-")&&(i==0))
      continue;
    else if(!isValidNum(vchar))
      return false;
  }
  return true;
}

/*检查输入的时间是否合法*/
function isValidData(str)
{
  var str1=str.substr(0,4);
  var str2=str.substr(5,2);
  var str3=str.substr(8,2);
  var str4=str.substr(11,2);
  var str5=str.substr(14,2);
 
  if(str1<1000||str1>9999)
    return false;
  if(str2<1||str2>12) 
    return false;
  if(str3<1||str3>31) 
    return false;
  if(str4<0||str4>23) 
   return false;
  if(str5<0||str5>59)
   return false;
  
  return true;
}

/*将日期转换为格式日期形式  flag=0--为yyyy/mm/dd方式 1--yyyy-mm-dd 2--yyyymmdd*/
function ChangeDateType(datestr,flag)
{
  var leng=datestr.length;
  var str;
 
  if(flag==0)
  {
    if(leng==10)
      str=datestr.substr(0,4)+"/"+datestr.substr(5,2)+"/"+datestr.substr(8,2);
    else if(leng==8) 
      str=datestr.substr(0,4)+"/"+datestr.substr(4,2)+"/"+datestr.substr(6,2);
    else
      return -1; 
  }
  else if(flag==1)
  {
    if(leng==10)
      str=datestr.substr(0,4)+"-"+datestr.substr(5,2)+"-"+datestr.substr(8,2);
    else if(leng==8) 
      str=datestr.substr(0,4)+"-"+datestr.substr(4,2)+"-"+datestr.substr(6,2);
    else
      return -2; 
  }
  else if(flag==2)
  {
    if(leng==10)
      str=datestr.substr(0,4)+datestr.substr(5,2)+datestr.substr(8,2);
    else if(leng==8) 
      str=datestr.substr(0,4)+datestr.substr(4,2)+datestr.substr(6,2);
    else
      return -3; 
  }
  return str;
}

/*检查是否是正确的日期*/
function isDate(str)
{
  var year,month,day;
 
  if(str.length!=8&&str.length!=10)
    return false;
  str=ChangeDateType(str,0);
  if(str.length!=10)
    return false;
 
  year=str.substr(0,4);
  month=str.substr(5,2);
  day=str.substr(8,2);
 
  if(str.length<10)
    return false;
  if(year<1000)
    return false;
  if((month>12)||(month<1))
    return false;
  else
  { 
    //先取得这个年月的日数
    var today= new Date(Date.parse(str));
    today=today.getDate();
    if(today<day)
      return false;
  }
  return true; 
}

/*检查是否是正确的年月*/
function isDate1(str)
{
  var year,month;
 
  if(str.length<6)
    return false;
 
  year=str.substr(0,4);
  month=str.substr(4,2);
 
  if(year<1000)
    return false;
  if((month>12)||(month<1))
    return false;

  return true; 
}

/*检查是否是正确的时间*/
function isTime(str)
{
  var hour,minute,fgf;
 
  hour=str.substr(0,2);
  minute=str.substr(3,5);
  fgf=str.substr(2,1);
 
  if(str.length<5)
    return false;
  if(hour>=24||hour<0)
    return false;
  if(minute>59||minute<0)
    return false;
  if(fgf!=":")
    return false; 
 
  return true; 
}


/*检查是否是正确的年月4-22*/
function isMDate(str)
{
  var year,month;
  var leng=str.length;
 
  if(!isNumStr(str))
    return false;

  if(leng==7)
  {
    year=str.substr(0,4);
    month=str.substr(5,2);
  }
  else if(leng==6)
  {
    year=str.substr(0,4);
    month=str.substr(4,2);
  }
  else
    return false;

  if(year<1000)
    return false;
  if((month>12)||(month<1))
    return false;

  return true; 
}

/*输入只允许是数字*/
function numonly(field,event)
{
  var key,keychar;
  if(window.event)
    key=window.event.keyCode;
  else if(event)  
    key=event.which;
  else
    return true;
 
  keychar=String.fromCharCode(key);

  if((key==null)||(key==0)||(key==8)||(key==9)||(key==13)||(key==27))
    return true;
  else if((("0123456789").indexOf(keychar)>-1)) 
    return true;
  else
    return false; 
}

/*检测输入日期是星期几*/
function getWeek(str)
{
  var day="";
  var week="";
 
  if(isEmpty(str))
    return -1;
  else
  {
    str=ChangeDateType(str,0);
    var today= new Date(Date.parse(str));
    week=today.getDay();
   
    return week;
  }
}

/*取得中文星期*/
function getcWeek(str)
{
  var week=getWeek(str);
  var weekday;
 
  if(week=="0")
    weekday="星期天";
  else if(week=="1") 
    weekday="星期一";
  else if(week=="2") 
    weekday="星期二";
  else if(week=="3") 
    weekday="星期三";
  else if(week=="4") 
    weekday="星期四";
  else if(week=="5") 
    weekday="星期五";
  else if(week=="6") 
    weekday="星期六";
   
  return weekday; 
}

/*取得中文星期*/
function getcWeek1(str)
{
  var week=getWeek(str);
  var weekday;
 
  if(week=="0")
    weekday="天";
  else if(week=="1") 
    weekday="一";
  else if(week=="2") 
    weekday="二";
  else if(week=="3") 
    weekday="三";
  else if(week=="4") 
    weekday="四";
  else if(week=="5") 
    weekday="五";
  else if(week=="6") 
    weekday="六";
   
  return weekday; 
}

/*取得某日期指定日后的日期*/
function getNDate(datestr,day)
{
  var str;
  datestr=ChangeDateType(datestr,0);
  var today= new Date(Date.parse(datestr));
 
  str=today.getFullYear()+"/"+(today.getMonth()+1)+"/"+(today.getDate()+Number(day));
  var ndate=new Date(Date.parse(str));
  var nmonth=ndate.getMonth()+1;
  var nday=ndate.getDate();
  var nyear=ndate.getFullYear();
  if(nmonth<10)
    nmonth="0"+nmonth;
  if(nday<10) 
    nday="0"+nday;
   
  redate=nyear+"-"+nmonth+"-"+nday;
  return redate;
}
/*取得某日期指定日前的日期*/
/*
function getPDate(datestr,day)
{
  var str;
  datestr=ChangeDateType(datestr,0);
  var today= new Date(Date.parse(datestr));
 
  str=today.getFullYear()+"/"+(today.getMonth()+1)+"/"+(today.getDate()-Number(day));
  var pdate=new Date(Date.parse(str));
  var pmonth=ndate.getMonth()+1;
  var pday=ndate.getDate();
  var pyear=pdate.getFullYear();
  if(pmonth<10)
    pmonth="0"+pmonth;
  if(pday<10) 
    pday="0"+pday;
   
  redate=pyear+"-"+pmonth+"-"+pday;
  return redate;
}
*/

/*取得某日期下个月的日期*/
function getNMonth(datestr,i)
{
  var str;
  datestr=ChangeDateType(datestr,0);
  var redate;
 
  var year=datestr.substr(0,4);
  var month=datestr.substr(5,2);
  var day=datestr.substr(8,2);
 
  if(month==12)
     redate=(Number(year)+1)+"-01"+"-"+day;
  else
  {
     month=Number(month)+i;
     if(month<10)
        month="0"+month;
     redate=year+"-"+month+"-"+day;
  }
  return redate;
}
/*取得某月的月底*/
function getLastDay(datestr)
{
  var str;
  datestr=ChangeDateType(datestr,0);
  var redate;

  datestr=datestr.substr(0,8)+"01";
  //取得30天后的日期
  str=getNDate(datestr,30);
 
  var day=str.substr(8,2);
  if(day=="31")
     redate=datestr.substr(0,8)+day;
  else if(day=="01")
     redate=datestr.substr(0,8)+"30";
  else if(day=="02")
     redate=datestr.substr(0,8)+"29";
  else if(day=="03")
     redate=datestr.substr(0,8)+"28";
 
  redate=ChangeDateType(redate,1);  
  return redate;
}
/*检查是否为金额字符串*/
function isMoneyStr(str)
{
  str=Trim(str);
  if(isEmpty(str))
    return false;
 
  var str1;
  var dotnum=0;
  //进行检测
  for(i=0;i<str.length;i++)
  {
    str1=str.substr(i,1);
    //检测是否为负
    if(i==0)
    {
      if((str1!="-")&&(!isValidNum(str1)))
        return false;
    }
    else
    {
      if((str1!=".")&&(!isValidNum(str1)))
         return false;
      if(str1==".")
        dotnum++;
      if(dotnum>1) 
        return false;
    }    
  }
  return true;
}

/*取得字符cstr在str中出现得次数*/
function getAppearNum(str,cstr)
{
   var leng=str.length;
   var count=0;
   var i;
  
   for(i=0;i<leng;i++)
   {
     if((str.substr(i,1))==cstr)
       count++;
   }

   return count;
}

/*取得字符*/
function getSubStr(str,cstr,si,ei)
{
   var restr="";
   var leng=str.length;
   var count=0;
   var sp=0;
   var ep=0;
   var i;
  
   if(si==0)
     sp=1;

   for(i=0;i<leng;i++)
   {
     if((str.substr(i,1))==cstr)
       count++;

     if(count==si&&count>0&&sp==0)
       sp = i+1;
     if(count==ei&&count>0)
     {
       ep = i;
       break;
     }
   }
   if(ei>count)
     ep=leng;

   var getl=ep-sp;
   if(sp==1)
     restr=str.substr(sp-1,(getl+1));
   else
     restr=str.substr(sp,getl);

   return restr;
}

/*检测ip地址*/
/**************************************
函数名称:checkIP(str)
函数功能:检测文本框的值(IP地址)是否符合IP地址的格式.
返回值:boolean 类型.IP格式正确返回"TRUE",IP格式不正确返回"FALSE".
**************************************/
function checkIP(ipstr)
{
  var count=getAppearNum(ipstr,".");
  var str1="",str2="",str3="",str4="";
  if(count!=3)
    return false;
 
  str1=getSubStr(ipstr,".",0,1);
  if(!isNumStr(str1))
     return false;
  else
  {
    if(Number(str1)>255||Number(str1)<0)
      return false;
    if(str1.substr(0,1)=='0'&&str1.length>1)
      return false;
  }
  str2=getSubStr(ipstr,".",1,2);
  if(!isNumStr(str2))
     return false;
  else
  {
    if(Number(str2)>255||Number(str2)<0)
      return false;
    if(str2.substr(0,1)=='0'&&str2.length>1)
      return false;
  }
  str3=getSubStr(ipstr,".",2,3);
  if(!isNumStr(str3))
     return false;
  else
  {
    if(Number(str3)>255||Number(str3)<0)
      return false;
    if(str3.substr(0,1)=='0'&&str3.length>1)
      return false;
 }
  str4=getSubStr(ipstr,".",3,4);
  if(!isNumStr(str4))
     return false;
  else
  {
    if(Number(str4)>255||Number(str4)<0)
      return false;
    if(str4.substr(0,1)=='0'&&str4.length>1)
      return false;
  }
 
  return true;
}

/*计算总金额*/
function CalZje(num,dj)
{
  if(isEmpty(num)||isEmpty(dj))
    return "";
  if(!isMoneyStr(num)||!isMoneyStr(dj))
    return "";
 
  var zje;
  zje=Number(num)*Number(dj);
  return zje;
}

/*将日期格式转换成短格式*/
function ToShortDate(daystr)
{
  var daystr1=ChangeDateType(daystr,0); //转换成yyyy/mm/dd形式
  var year,month,day;
  var datestr;
  year=daystr1.substr(0,4);
  month=daystr1.substr(5,2);
  day=daystr1.substr(8,2);
 
  if(Number(month)<10)
     month=month.substr(1,1);
  if(Number(day)<10)
     day=day.substr(1,1);
 
  datestr=month+"/"+day+"/"+year;
 
  return datestr;  
}

/*取得两个日期之间的天数*/
function getDayNum(sdate,edate)
{
  var sdate1,edate1;
  var sday,eday;
  var days;
  sdate1=ToShortDate(sdate);
  edate1=ToShortDate(edate);
  sday=Date.parse(sdate1);
  eday=Date.parse(edate1);
 
  days=(eday-sday)/(86400000);
  return days;
}

/*取得两个日期之间的年*/
function GetYearN(sdate,edate)
{
  var years;
  var syear=sdate.substr(0,4);
  var eyear=edate.substr(0,4);
  years=eyear-syear;
  return years;
}

/*取得两个日期之间的月*/
function GetMonthN(sdate,edate)
{
  var years,months,months1;
  var syear=sdate.substr(0,4);
  var eyear=edate.substr(0,4);
  var smonth=sdate.substr(5,2);
  var emonth=edate.substr(5,2);
  years=eyear-syear;
  months=emonth-smonth;
  months1=years*12+months;
  return months1;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值