JavaScript公共函數

来源:http://www.cnblogs.com/hoobey/archive/2016/02/13/5187617.html
-Advertisement-
Play Games

[在此處輸入文章標題] // JScript 文件 /* ================================================================== JS 公共函數 080827 =======================================


[在此處輸入文章標題]

 

 

// JScript 文件

/*

==================================================================

 

JS 公共函數

 

 

                         080827

============================================================

*/

/*

==================================================================

功能:

============================================================

*/

function IfShow(ShowMsg)

{

 if (ShowMsg == "" )

 {

  return false;

 }

 else

 {

  return true;

 }

 

}

/*

==================================================================

功能:替換空格(將多個連續空格替換為一個空格)

使用:ReplaceSpace(obj)

返回:string

==================================================================

*/

function ReplaceSpace(str)

{

 while ( str.indexOf("  ") >= 0 )

 {

  str = str.replace("  " ," ");

 }

 return str;

} /*

==================================================================

功能:非空檢查,不忽略空格

提示信息:輸入框為空,請輸入!

使用:isNull(obj,string)

返回:bool

==================================================================

*/

function isNull(obj,ShowMsg)

{

 var show = IfShow(ShowMsg) ;  //非空檢查

 if(obj.value == "")

 {

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select(); 

  return false;

 }

 else

 {

  return true;

 }

} /*

==================================================================

功能:郵箱地址檢查

提示信息:未輸入郵件地址或郵件地址無效!

使用:MailCheck(obj,string)

返回:bool

==================================================================

*/

function MailCheck(obj,ShowMsg)

{

 var show = IfShow(ShowMsg) ;

 

 if(obj.value!= "")

 {

  var ok1=obj.value.indexOf("@");

  var ok2=obj.value.indexOf(".");

  if(!((ok1!=-1)&&(ok2!=-1)))

  {

   if (show) alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;

  }

  var allowstrlist = "&#%<>";

  var endvalue = true;

  for (i=0;i<obj.value.length;i++)

  {

   if (allowstrlist.indexOf(obj.value.substr(i,1))!=-1)

   {

    endvalue=false;  

    break;

   }

  }

  if(endvalue==false)

  {

   if (show) alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;  

  }

  //郵件地址正確

  return true;

 }

 else

 {

  //請輸入電子信箱地址

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

  return false;

 }

} /*

==================================================================

功能:檢查輸入的是否為數字

提示信息:未輸入或輸入的不是一個合法的數字!

使用:isNumeric(obj,string)

返回:bool

==================================================================

*/

function isNumeric(obj,ShowMsg)

{

 var show = IfShow(ShowMsg) ;

 

 var IfTrue = obj.value.search(/^(-|\+)?\d+(\.\d+)?$/) != -1;

 

 if (show && IfTrue ==false)

 {

  alert(ShowMsg);

  obj.focus();

  obj.select();

  return false;

 }

 else

 {

  return true;

 }

}

/*

==================================================================

功能:列印

使用:Print()

返回:

==================================================================

*/

function Print()

{  document.all.print.style.display = "none";

 window.print();

 window.close();

} /*

 

==================================================================

功能:驗證身份證號碼是否有效

提示信息:未輸入或輸入身份證號不正確!

使用:isIDno(obj,string)

返回:bool

==================================================================

*/

function isIDno(obj,ShowMsg)

{

 var show = IfShow(ShowMsg);

 

 //aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",21:"遼寧",22:"吉林",23:"黑龍江

",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北

",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"雲南",54:"西藏

",61:"陝西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外

"};

 var aCity = "11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51

,52,53,54,61,62,63,64,65,71,81,82,91"

 

 var iSum = 0;

 var info = "";

 var idCardLength = obj.value.length; 

if(!/^\d{17}(\d|x)$/i.test(obj.value)&&!/^\d{15}$/i.test(obj.value))

 {

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

  return false;

 }

 

 //在後面的運算中x相當於數字10,所以轉換成a

 obj.value = obj.value.replace(/x$/i,"a");

 

 var curCity = obj.value.substr(0,2);  if(!(aCity.indexOf(curCity) > 0) )

 {

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

  return false;

 }  if (idCardLength==18)

 {

 

sBirthday=obj.value.substr(6,4)+"-"+Number(obj.value.substr(10,2))+"-"+Number(obj.value.subs

tr(12,2));

  var d = new Date(sBirthday.replace(/-/g,"/"))

  if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))

  {

   if (show)

    alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;

  }

 

  for(var i = 17;i>=0;i --)

  iSum += (Math.pow(2,i) % 11) * parseInt(obj.value.charAt(17 - i),11);

 

  if(iSum%11!=1)

  {

   if (show)

    alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;

  }

 

 }

 else if (idCardLength==15)

 {

  sBirthday = "19" + obj.value.substr(6,2) + "-" + Number(obj.value.substr(8,2)) + "-" +

Number(obj.value.substr(10,2));

  var d = new Date(sBirthday.replace(/-/g,"/"))

  var dd = d.getFullYear().toString() + "-" + (d.getMonth()+1) + "-" + d.getDate();  

if(sBirthday != dd)

  {  

   if (show)

    alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;

  }

 }

 return true;

}

/*

==================================================================

功能:驗證電話號碼格式是否正確

提示信息:未輸入或輸入電話號碼格式不正確!

使用:isPhoneNo(obj,string)

返回:bool

==================================================================

*/

function isPhoneNo(obj,ShowMsg)

{

 var show = IfShow(ShowMsg);

 

 var phoneNo = obj.value;

 var Endvalue = true;

 var allowstrlist = "1234567890()-";

 if(phoneNo!="")

 {  

  for (i=0;i<phoneNo.length;i++)

  {

    if (allowstrlist.indexOf(phoneNo.substr(i,1)) == -1)

    {

   Endvalue = false;  

   break;

    }

  }

  if(Endvalue == false)

  {

   if (show)

    alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;

  }

 }

 else

 {

  if (show)

    alert(ShowMsg);

  obj.focus();

  obj.select();

  return false;

 }

 return true;

}

/*

==================================================================

功能:判斷是否為浮點數、正浮點數、負浮點數、正浮點數+0、負浮點數+0    

提示信息:參數錯誤或輸入的不是一個(浮點數)。。

使用:isFloat(obj,string,int or string,string)

       (測試對象,+ or - or empty,empty or 0,提示信息)

參數二:      

     空  浮點數

     +   正浮點數

     -   負浮點數

返回:bool

==================================================================

*/

function isFloat(obj,sign,zero,ShowMsg)

{

 var show = IfShow(ShowMsg);

 

 var objStr = obj.value;

    var reg;   

    var bolzero;   

   

    if(Trim(objStr)=="")

    {

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

        return false;

    }

    else

    {

        objStr=objStr.toString();

    }   

   

    if((sign==null)||(Trim(sign)==""))

    {

        sign="+-";

    }

   

    if((zero==null)||(Trim(zero)==""))

    {

        bolzero=false;

    }

    else

    {

        zero=zero.toString();

        if(zero==0)

        {

            bolzero=true;

        }

        else

        {

            if (show) alert(ShowMsg);

            obj.focus();

  obj.select();

            return false;

        }

    }

   

    switch(sign)

    {

        case "+-":

            //浮點數

            reg=/^((-?|\+?)\d+)(\.\d+)?$/;

            break;

        case "+":

            if(!bolzero)           

            {

                //正浮點數 

reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;

            }

            else

            {

                //正浮點數+0

                reg=/^\+?\d+(\.\d+)?$/;

            }

            break;

        case "-":

            if(!bolzero)

            {

                //負浮點數               

    reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;

            }

            else

            {

                //負浮點數+0

                reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;

            }           

            break;

        default:

            if (show) alert(ShowMsg);

            obj.focus();

  obj.select();

            return false;

            break;

    }

   

    var r=objStr.match(reg);

    if(r==null)

    {

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

        return false;

    }

    else

    {       

        return true;    

    }

}

/*

==================================================================

功能:判斷是否為整數、正整數、負整數、正整數+0、負整數+0

提示信息:參數錯誤或輸入的不是一個(整數)。。

使用:isInt(obj,string,int or string,string)

     (測試對象,+ or - or empty,empty or 0,顯示信息)

     空  整數

     +   正整數

     -   負整數

返回:bool

==================================================================

*/

function isInt(obj,sign,zero,ShowMsg)

{

 var show = IfShow(ShowMsg);

 

 var objStr = obj.value;

 

    var reg;   

    var bolzero;   

   

    if(Trim(objStr)=="")

    { 

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

        return false;

    }

    else

    {

        objStr=objStr.toString();

    }   

   

    if((sign==null)||(Trim(sign)==""))

    {

        sign="+-";

    }

  &nbsp;

    if((zero==null)||(Trim(zero)==""))

    {

        bolzero=false;

    }

    else

    {

        zero=zero.toString();

        if(zero==0)

        {

            bolzero=true;

        }

        else

        {

            if (show) alert(ShowMsg);

            obj.focus();

   obj.select();

            return false;

        }

    }

   

    switch(sign)

    {

        case "+-":

            //整數

            reg=/(^-?|^\+?)\d+$/;           

            break;

        case "+":

            if(!bolzero)          

            {

                //正整數

                reg=/^\+?[0-9]*[1-9][0-9]*$/;

            }

            else

            {

                //正整數+0

                //reg=/^\+?\d+$/;

                reg=/^\+?[0-9]*[0-9][0-9]*$/;

            }

            break;

        case "-":

            if(!bolzero)

            {

                //負整數

                reg=/^-[0-9]*[1-9][0-9]*$/;

            }

            else

            {

                //負整數+0

                //reg=/^-\d+$/;

                reg=/^-[0-9]*[0-9][0-9]*$/;

            }           

            break;

        default:

            if (show) alert(ShowMsg);<BR>            obj.focus();

   obj.select();

            return false;

            break;

    }

   

    var r=objStr.match(reg);

    if(r==null)

    {

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

        return false;

    }

    else

    {   

        return true;    

    }

}

/*

==================================================================

功能:字元串操作,去除字元串兩邊的空格

使用:LTrim(string)

返回:string

 ==================================================================

            */

            function LTrim(str)

            {

                var whitespace = new String(" \t\n\r");

                var s = new String(str);

               

                if (whitespace.indexOf(s.charAt(0)) != -1)

                {

                    var j=0, i = s.length;

                    while (j < i && whitespace.indexOf(s.charAt(j)) != -1)

                    {

                        j++;

                    }

                    s = s.substring(j, i);

                }

                return s;

            }

            

            /*

            ==================================================================

            功能:去除右邊的空格

            使用:RTrim(string)

   返回:string

            ==================================================================

            */

            function RTrim(str)

            {

                var whitespace = new String(" \t\n\r");

                var s = new String(str);

            

                if (whitespace.indexOf(s.charAt(s.length-1)) != -1)

                {

                var i = s.length - 1;

                    while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)

                    {

                        i--;

                    }

                    s = s.substring(0, i+1);

                }

                return s;

            }

           

//去除前後空格           

function Trim(str)

{

    return RTrim(LTrim(str));

}            

/*

==================================================================

功能:無效字元的檢測(不允許輸入特殊字元)

提示信息:未輸入或輸入包含非法字元

使用:CheckChar(obj,Lchar,string)

   Lchar:要檢查的特殊字元

返回:bool

==================================================================

*/

function CheckChar(obj,Lchar,ShowMsg)

{

 var show = IfShow(ShowMsg);  var strlist = Lchar; //"\"\ >~!@#$%^&*?<>\"\ ";

 

 //無效字元的檢測

 if(obj.value!= "")

 { 

  var tmpbool=true;

  for (i=0;i<obj.value.length;i++)

  {

   if(strlist.indexOf(obj.value.substr(i,1))!=-1)

   {

    tmpbool=false;

    break;

   }

   else

   {}

  }

 

  if(tmpbool==false)

  {

   if (show) alert(ShowMsg + strlist);

   obj.focus();

   obj.select();

   return false;

  }

  else

  {

   return true;

  }

 }

 else

 {

  if (show) alert(ShowMsg + strlist);

  return false;

 }

 

/*

==================================================================

功能:判斷是否為日期(格式:yyyy-mm-dd)

提示信息:未輸入或輸入的日期格式錯誤!

使用:isDate(obj,string)

返回:bool

==================================================================

*/

function isDate(obj,ShowMsg)

{

 var show = IfShow(ShowMsg) ;

 

 if(obj.value==null)

 {

 if (show) alert(ShowMsg);

 return false;

 }

 

    if(obj.value=="")

    {

 if (show) alert(ShowMsg);

 return false;

 }

   

    var datePat=/^(\d{2}|\d{4})(\-)(\d{1,2})(\-)(\d{1,2})$/;

   

    var dateStr=obj.value;

    // is the format ok?

 var matchArray = dateStr.match(datePat);

    if (matchArray==null)

    {

  if (show) alert(ShowMsg);

        return false;

    }

    year=matchArray[1];

    month=matchArray[3];

    day=matchArray[5];     if (year.length!=4 || month.length!=2 || day.length!=2)

    {

  if (show) alert(ShowMsg);

        return false;

    }

    if (month < 1 || month > 12)

    {

  if (show) alert(ShowMsg);

        return false;

    }

    if (day < 1 || day > 31)

    {

  if (show) alert(ShowMsg);

        return false;

    }     if ((month==4 || month==6 || month==9 || month==11) && day==31)

    {

  if (show) alert(ShowMsg);

        return false;

    }     if (month==2)

    {

        var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));

        if (day>29 || ((day==29) && (!isleap)))

        {

   if (show) alert(ShowMsg);

            return false;

        }

    }

    return true;

} /*

==================================================================

功能:日期大小判斷(格式:yyyy-mm-dd)

提示信息:未輸入或輸入的開始日期大於結束日期!

使用:JudgeDate(obj1,obj2,string)

返回:bool

==================================================================

*/

function JudgeDate(obj1,obj2,ShowMsg)

{

 var show = IfShow(ShowMsg) ;

 

 var eva = isDate(obj1,"") && isDate(obj2,"");

 

    if(obj1.value!="" && obj2.value!="" & eva != false)

    {

  var date1 = obj1.value;

        var myDate1 = Date.parse(date1.replace("-","/"));

        var date2 = obj2.value;

        var myDate2 = Date.parse(date2.replace("-","/"));

        if(myDate1 > myDate2)

        {

            if (show) alert(ShowMsg);

            return false;

        }

        else

        {

   return true;

        }

    }

    else

    {

  if (show) alert(ShowMsg);

  return false;

    }

 

 

 

///////////////////////////

function setCopy(_sTxt){try{clipboardData.setData('Text',_sTxt);window.status=_sTxt+'已經複製到剪貼板'}catch(e){}}

function setHome(){try{window.external.AddFavorite(window.document.location,window.document.title)}catch(e){};}

function $(d){try{return document.getElementById(d);}catch(e){return null;}}

 

function marquees(view,src,cont){

var speed=50 ;

var _demo=$(view); var _demo1=$(src); var _demo2=$(cont);

_demo2.innerHTML=_demo1.innerHTML+_demo1.innerHTML ;

function Marquee(){

if(_demo.offsetWidth<=_demo.scrollLeft){

_demo.scrollLeft=0

}else{

_demo.scrollLeft++

}

//window.status=_demo.offsetWidth+','+_demo.scrollLeft;

}

var MyMar=setInterval(Marquee,speed) ;

_demo.onmouseover=function() {clearInterval(MyMar)}

_demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}

}

 

function xmlhttp(){

    try { return new ActiveXObject("Msxml2.XMLHTTP");    } catch(e) {}

    try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}

    try { return new XMLHttpRequest();                   } catch(e) {}

    window.status='XMLHTTP error!'; return null;

}

 

 

 

 

function setText(http,out,isalert,callback){

    if(!isalert){

       if(out=='')out='mybody';

      

       var obj=document.getElementById(out);

       window.status='數據載入中,請稍候... ...';

       obj.innerHTML='<p><img src=/img/loading.gif border=0 width=32 height=32 align=absmiddle>數據載入中,請稍候... ...</P>'; 

    }

    var s='';

    if (http.readyState == 4) {

       window.status='完成';

       if(http.status ==200){s=unescape(http.responseText);}else{s='<p>伺服器忙或網路不通,請稍後再試。'+http.statusText+'<br>'+unescape(http.responseText)+'</p>';} 

       if(!isalert){obj.innerHTML=s;if(callback!=''){eval(callback);}

       }else{ if(s!=''){ if(callback!=''){eval(callback);}alert(s); } }

       delete http;

       http=null;

    }

}

 

//  a=1;b=2; 從類似字元串中返回a的值var a=getValue(str,'a',';','=');

function getValue(str,v,s1,s2){

    str+=s1;

    var ary=str.split(s1);

    for(var i=0;i<ary.length;i++){

       if(ary[i].indexOf(s2)>=0){

           if(ary[i].split(s2)[0]==v){

              return ary[i].substring(ary[i].indexOf(s2)    +s2.length);

           }

       }  

    }

    return '';

}

 

 

 

 

function neverDragDivision(fObj) { with (this)

{

    if (!fObj) return;

    this.bDraged = false;

    this.oDragOrig = fObj;  

    oDragOrig.style.cursor = "move";

    oDragOrig.onmousedown = function()

    {

       var ofs = Offset(oDragOrig);

      oDragOrig.style.position = "absolute";

       oDragOrig.style.left = ofs.l;

       oDragOrig.style.top = ofs.t;

       oDragOrig.X = event.clientX - ofs.l;

       oDragOrig.Y = event.clientY - ofs.t;

       bDraged = true;

    };    

    //this.leftDiv=Offset(document.getElementById('left1'));

    oDragOrig.onmousemove = function()

    {

       if (!bDraged) return;

       oDragOrig.setCapture();

    //window.status=leftDiv.l+';'+oDragOrig.X+':'+oDragOrig.Y+','+oDragOrig.style.left+':'+oDragOrig.style.top;

       var l= event.clientX - oDragOrig.X;

       var t = event.clientY - oDragOrig.Y;

       //if(Math.abs(l-leftDiv.l)<=50)l=150;

       oDragOrig.style.left=l;

       oDragOrig.style.top=t;

 

    };

    oDragOrig.onmouseup = function()

    {

       bDraged = false;

       oDragOrig.releaseCapture();

    };

    function Offset(e) {

       var t = e.offsetTop;

       var l = e.offsetLeft;

       var w = e.offsetWidth;

       var h = e.offsetHeight;

       while(e=e.offsetParent) {

           t+=e.offsetTop;

           l+=e.offsetLeft;

       }

       return { t:t, l:l, w:w, h:h }

    };

}};

 

//圖片按比例縮放

function changeImg(ImgD,iwidth,iheight){   

     var image=new Image();

     image.src=ImgD.src;

    if(image.width>0 && image.height>0){   

    if(image.width/image.height>= iwidth/iheight){

        if(image.width>iwidth){ 

         ImgD.width=iwidth;

         ImgD.height=(image.height*iwidth)/image.width;

         }else{

         ImgD.width=image.width; 

         ImgD.height=image.height;

         }

         ImgD.alt=image.width+"×"+image.height;

         }

    else{

        if(image.height>iheight){ 

         ImgD.height=iheight;

         ImgD.width=(image.width*iheight)/image.height;       

         }else{

         ImgD.width=image.width; 

         ImgD.height=image.height;

         }

         ImgD.alt=image.width+"×"+image.height;

         }

     }

}

 

 

 

[在此處輸入文章標題]

 

 

// JScript 文件

/*

==================================================================

 

JS 公共函數

 

 

                         080827

============================================================

*/

/*

==================================================================

功能:

============================================================

*/

function IfShow(ShowMsg)

{

 if (ShowMsg == "" )

 {

  return false;

 }

 else

 {

  return true;

 }

 

}

/*

==================================================================

功能:替換空格(將多個連續空格替換為一個空格)

使用:ReplaceSpace(obj)

返回:string

==================================================================

*/

function ReplaceSpace(str)

{

 while ( str.indexOf("  ") >= 0 )

 {

  str = str.replace("  " ," ");

 }

 return str;

} /*

==================================================================

功能:非空檢查,不忽略空格

提示信息:輸入框為空,請輸入!

使用:isNull(obj,string)

返回:bool

==================================================================

*/

function isNull(obj,ShowMsg)

{

 var show = IfShow(ShowMsg) ;  //非空檢查

 if(obj.value == "")

 {

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select(); 

  return false;

 }

 else

 {

  return true;

 }

} /*

==================================================================

功能:郵箱地址檢查

提示信息:未輸入郵件地址或郵件地址無效!

使用:MailCheck(obj,string)

返回:bool

==================================================================

*/

function MailCheck(obj,ShowMsg)

{

 var show = IfShow(ShowMsg) ;

 

 if(obj.value!= "")

 {

  var ok1=obj.value.indexOf("@");

  var ok2=obj.value.indexOf(".");

  if(!((ok1!=-1)&&(ok2!=-1)))

  {

   if (show) alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;

  }

  var allowstrlist = "&#%<>";

  var endvalue = true;

  for (i=0;i<obj.value.length;i++)

  {

   if (allowstrlist.indexOf(obj.value.substr(i,1))!=-1)

   {

    endvalue=false;  

    break;

   }

  }

  if(endvalue==false)

  {

   if (show) alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;  

  }

  //郵件地址正確

  return true;

 }

 else

 {

  //請輸入電子信箱地址

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

  return false;

 }

} /*

==================================================================

功能:檢查輸入的是否為數字

提示信息:未輸入或輸入的不是一個合法的數字!

使用:isNumeric(obj,string)

返回:bool

==================================================================

*/

function isNumeric(obj,ShowMsg)

{

 var show = IfShow(ShowMsg) ;

 

 var IfTrue = obj.value.search(/^(-|\+)?\d+(\.\d+)?$/) != -1;

 

 if (show && IfTrue ==false)

 {

  alert(ShowMsg);

  obj.focus();

  obj.select();

  return false;

 }

 else

 {

  return true;

 }

}

/*

==================================================================

功能:列印

使用:Print()

返回:

==================================================================

*/

function Print()

{  document.all.print.style.display = "none";

 window.print();

 window.close();

} /*

 

==================================================================

功能:驗證身份證號碼是否有效

提示信息:未輸入或輸入身份證號不正確!

使用:isIDno(obj,string)

返回:bool

==================================================================

*/

function isIDno(obj,ShowMsg)

{

 var show = IfShow(ShowMsg);

 

 //aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",21:"遼寧",22:"吉林",23:"黑龍江

",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北

",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"雲南",54:"西藏

",61:"陝西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外

"};

 var aCity = "11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51

,52,53,54,61,62,63,64,65,71,81,82,91"

 

 var iSum = 0;

 var info = "";

 var idCardLength = obj.value.length; 

if(!/^\d{17}(\d|x)$/i.test(obj.value)&&!/^\d{15}$/i.test(obj.value))

 {

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

  return false;

 }

 

 //在後面的運算中x相當於數字10,所以轉換成a

 obj.value = obj.value.replace(/x$/i,"a");

 

 var curCity = obj.value.substr(0,2);  if(!(aCity.indexOf(curCity) > 0) )

 {

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

  return false;

 }  if (idCardLength==18)

 {

 

sBirthday=obj.value.substr(6,4)+"-"+Number(obj.value.substr(10,2))+"-"+Number(obj.value.subs

tr(12,2));

  var d = new Date(sBirthday.replace(/-/g,"/"))

  if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))

  {

   if (show)

    alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;

  }

 

  for(var i = 17;i>=0;i --)

  iSum += (Math.pow(2,i) % 11) * parseInt(obj.value.charAt(17 - i),11);

 

  if(iSum%11!=1)

  {

   if (show)

    alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;

  }

 

 }

 else if (idCardLength==15)

 {

  sBirthday = "19" + obj.value.substr(6,2) + "-" + Number(obj.value.substr(8,2)) + "-" +

Number(obj.value.substr(10,2));

  var d = new Date(sBirthday.replace(/-/g,"/"))

  var dd = d.getFullYear().toString() + "-" + (d.getMonth()+1) + "-" + d.getDate();  

if(sBirthday != dd)

  {  

   if (show)

    alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;

  }

 }

 return true;

}

/*

==================================================================

功能:驗證電話號碼格式是否正確

提示信息:未輸入或輸入電話號碼格式不正確!

使用:isPhoneNo(obj,string)

返回:bool

==================================================================

*/

function isPhoneNo(obj,ShowMsg)

{

 var show = IfShow(ShowMsg);

 

 var phoneNo = obj.value;

 var Endvalue = true;

 var allowstrlist = "1234567890()-";

 if(phoneNo!="")

 {  

  for (i=0;i<phoneNo.length;i++)

  {

    if (allowstrlist.indexOf(phoneNo.substr(i,1)) == -1)

    {

   Endvalue = false;  

   break;

    }

  }

  if(Endvalue == false)

  {

   if (show)

    alert(ShowMsg);

   obj.focus();

   obj.select();

   return false;

  }

 }

 else

 {

  if (show)

    alert(ShowMsg);

  obj.focus();

  obj.select();

  return false;

 }

 return true;

}

/*

==================================================================

功能:判斷是否為浮點數、正浮點數、負浮點數、正浮點數+0、負浮點數+0    

提示信息:參數錯誤或輸入的不是一個(浮點數)。。

使用:isFloat(obj,string,int or string,string)

       (測試對象,+ or - or empty,empty or 0,提示信息)

參數二:      

     空  浮點數

     +   正浮點數

     -   負浮點數

返回:bool

==================================================================

*/

function isFloat(obj,sign,zero,ShowMsg)

{

 var show = IfShow(ShowMsg);

 

 var objStr = obj.value;

    var reg;   

    var bolzero;   

   

    if(Trim(objStr)=="")

    {

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

        return false;

    }

    else

    {

        objStr=objStr.toString();

    }   

   

    if((sign==null)||(Trim(sign)==""))

    {

        sign="+-";

    }

   

    if((zero==null)||(Trim(zero)==""))

    {

        bolzero=false;

    }

    else

    {

        zero=zero.toString();

        if(zero==0)

        {

            bolzero=true;

        }

        else

        {

            if (show) alert(ShowMsg);

            obj.focus();

  obj.select();

            return false;

        }

    }

   

    switch(sign)

    {

        case "+-":

            //浮點數

            reg=/^((-?|\+?)\d+)(\.\d+)?$/;

            break;

        case "+":

            if(!bolzero)           

            {

                //正浮點數 

reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;

            }

            else

            {

                //正浮點數+0

                reg=/^\+?\d+(\.\d+)?$/;

            }

            break;

        case "-":

            if(!bolzero)

            {

                //負浮點數               

    reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;

            }

            else

            {

                //負浮點數+0

                reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;

            }           

            break;

        default:

            if (show) alert(ShowMsg);

            obj.focus();

  obj.select();

            return false;

            break;

    }

   

    var r=objStr.match(reg);

    if(r==null)

    {

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

        return false;

    }

    else

    {       

        return true;    

    }

}

/*

==================================================================

功能:判斷是否為整數、正整數、負整數、正整數+0、負整數+0

提示信息:參數錯誤或輸入的不是一個(整數)。。

使用:isInt(obj,string,int or string,string)

     (測試對象,+ or - or empty,empty or 0,顯示信息)

     空  整數

     +   正整數

     -   負整數

返回:bool

==================================================================

*/

function isInt(obj,sign,zero,ShowMsg)

{

 var show = IfShow(ShowMsg);

 

 var objStr = obj.value;

 

    var reg;   

    var bolzero;   

   

    if(Trim(objStr)=="")

    { 

  if (show) alert(ShowMsg);

  obj.focus();

  obj.select();

        return false;

    }

    else

    {

        objStr=objStr.toString();

    }   

   

    if((sign==null)||(Trim(sign)==""))

    {

        sign="+-";

    }

  &nbsp;

    if((zero==null)||(Trim(zero)==""))

    {

        bolzero=false;

    }

    else

    {

        zero=zero.toString();

        if(zero==0)

        {

            bolzero=true;

        }

        else

        {

            if (show) alert(ShowMsg);

            obj.focus();

   obj.select();

            return false;

        }

    }

   

    switch(sign)

    {

        case "+-":

            //整數

            reg=/(^-?|^\+?)\d+$/;           

            break;

        case "+":

            if(!bolzero)          

            {

                //正整數

                reg=/^\+?[0-9]*[1-9][0-9]*$/;

            }

            else

            {

                //正整數+0

                //reg=/^\+?\d+$/;

                reg=/^\+?[0-9]*[0-9][0-9]*$/;

            }

          &n

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 下麵這些客戶端 javascript代碼用到了事件,它給一個很重要的事件--“load" 事件註冊了一個事件處理程式。同時展示了註冊”click“事件處理函數更高級的一種方法 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset=
  • 其實這樣的東西很多了,但是我就是要寫。 我寫這種鬼東西只是為了監督自己,如果能順便幫一下別人就更好了。 這個系列的基礎學習,不會去看實體書,主要是去看網上的資料和官網。 Bootstrap就是對jQuery的一次再開發,所以jQuery腳本引用必須在bootstrap腳本之前。 <link type
  • 通過提示框跳轉頁面 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 <script> 9 window.onlo
  • 對象的存儲描述: get 和 set 方法 1 <script> 2 var obj ={ 3 get age(){ 4 return 22 5 }, 6 set age(value){ 7 console.log(value) 8 } 9 } 10 console.log(obj.age) 11
  • 如何自定義屬性的特性? 用對象.屬性的特性和自定義的屬性的特性有什麼區別? 它的四大特性 writable enumerable configable 有什麼區別? 先預習一個用對象.屬性定義 ,屬性的四大特性是以什麼方式呈現的。 這時個屬性的三大特性預設值都為true。 代碼演示: 1 <scri
  • 針對兩列佈局案例(左邊一列寬度固定,右邊一列寬度自適應),從而講解float屬性
  • 數據屬性: 數據屬性包含一個數據值的位置,在這個位置可以讀取和寫入值。 4個描述的行為特性: writable 表示能否修改屬性的值。預設為true Enumerable 表示能否過過for in迴圈返回屬性是否可以枚舉。 configuralbe 表示是否能過來delete刪除屬性從來重新定義屬性
  • 出場: 首先我們來說說為什麼需要label標簽,雖然我們已經知道有break,continue跳出迴圈,但如果是多重迴圈那麼它們就顯的無能為力了,所以就出現了label這個標簽來為我們服務。 我們先來看看單獨使用break的情況 1 for(var i=0;i<4;i++){ 2 for(var j
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...