常用的JS验证函数

/*---常规验证函数 ---*/

String.prototype.Trim 
= function() {  
    
var m = this.match(/^\s*(\S+(\s+\S+)*)\s*$/);  
    
return (m == null? "" : m[1];  
}

String.prototype.isMobile 
= function() {  
    
return (/^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})$/.test(this.Trim()));  


String.prototype.isTel 
= function()
{   
    
return (/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(this.Trim()));
}

String.prototype.isMobileTel 
= function(){
    
return (this.isTel()||this.isMobile());
}

String.prototype.isEmail 
= function()
{
    
return (/^(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)$/.test(this.Trim()));
}


String.prototype.isNumber 
= function()
{
    
return (!isNaN(this.Trim()));
}

String.prototype.isInt 
= function(){
 
return (/^(-?[0-9]\d*)$/.test(this.Trim()));
}


String.prototype.isFloat 
= function(){
 
return (/^(-?([0-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0))$/.test(this.Trim()));
}

String.prototype.isPwd 
= function(){
 
return (/^[\w+]{6,20}$/.test(this.Trim()));
}

String.prototype.isChineseFirstName 
= function(){
 
return (/^[\u4e00-\u9fa5]{1,2}$/.test(this.Trim()));
}

String.prototype.isChineseLastName 
= function(){
 
return (/^[\u4e00-\u9fa5]{1,15}$/.test(this.Trim()));
}


String.prototype.isEmpty 
= function(){
 
return (this.Trim()==""||this==null);
}

String.prototype.isDate 
= function(){
  
return /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/.test(this.Trim());
}

String.prototype.isMoney 
= function(){
    
return (/^(-?\d+)(\.\d+)?$/.test(this.Trim()));
}

function isNumber(s){
 
return (!isNaN(s.Trim()));
}

function isDate(str){ 
var reg = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/
if (reg.test(str)) return true;
return false;



/*---常用其它函数---*/

function openWin(theURL,winName,features, myWidth, myHeight, isCenter){
    
if(window.screen)if(isCenter)if(isCenter=="true"){
        
var myLeft = (screen.width-myWidth)/2;
        var myTop = (screen.height-myHeight)/2;
        features+=(features!='')?',':'';       
            features
+=',left='+myLeft+',top='+myTop;
    }
      window.open(theURL,winName,features
+((features!='')?',':'')+'width='+myWidth+',height='+myHeight);
  }


//左填充,示例:document.write(lpad("1","0",2))返回01
function lpad(desstr,padchar,lenint)
{
    
var result="";
    
for(var i=1;i<=lenint-desstr.length;i++)
    {
        result 
+= padchar
        
//document.write("result=" + result + "<br/>")
    }
    result 
+= desstr
    
return result;
}

//获取当前时间(不含日期部分)
function GetTime(){  
   
var today = new Date()
   
var strD = String(today.getHours());
   
var strH = String(today.getMinutes());
   
var strS = String(today.getSeconds());
   
return(lpad(strD,"0",2+ ":" + lpad(strH,"0",2+ ":" + lpad(strS,"0",2));
}

//获取当前时间(参数DateTimeDiff 时差)
function GetTimeDiff(DateTimeDiff){  
   
var today = new Date()
   
var i = today.getHours()+DateTimeDiff;
   i 
= i % 24

   
var strD = String(i);
   
var strH = String(today.getMinutes());
   
var strS = String(today.getSeconds());

   
return(lpad(strD,"0",2+ ":" + lpad(strH,"0",2+ ":" + lpad(strS,"0",2));
}


//获取当前时间(不含日期部分)
function GetTimeNoSecond(){  
   
var today = new Date()
   
var strD = String(today.getHours());
   
var strH = String(today.getMinutes());   
   
return(lpad(strD,"0",2+ ":" + lpad(strH,"0",2) );
}

//获取当前时间(参数DateTimeDiff 时差)
function GetTimeNoSecondDiff(DateTimeDiff){  
   
var today = new Date()
   
var i = today.getHours()+DateTimeDiff;
   i 
= i % 24

   
var strD = String(i);
   
var strH = String(today.getMinutes());   

   
return(lpad(strD,"0",2+ ":" + lpad(strH,"0",2) );
}


//checkBox全选功能(allChkId为全选checkBox的ID,chkId为要操作checkbox组的ID)
function checkAll(allChkId,chkId){
    
try
    {
        
var chkObj = eval("document.all." + chkId);
        
        
var chkAllObj = eval("document.all." + allChkId);
        
        
if (chkObj.length==undefined){
            chkObj.checked 
= chkAllObj.checked;
            
return;
        }
        
        
for (var i=0;i<chkObj.length;i++){
            chkObj[i].checked 
= chkAllObj.checked;
        }
    }
    
catch(err)
    {
        alert(
"当前没有任何信息,请销后操作.");
    }
}


//初始化CheckBox组(strValue以"|"分隔,例如:initCheck("UserRight","aaa|ccc"))
function initCheck(ChkId,strValue){
    
var chkObj = eval("document.all." + ChkId);    
    
var ArrT = strValue.split("|");
    
for (var i=0;i<chkObj.length;i++){        
        
for (var j=0;j<ArrT.length;j++){            
            
if (chkObj[i].value==ArrT[j]){
                chkObj[i].checked 
= true;    
            }
        }                
    }    
}

//检测checkbox组是否有选择
function checkId(chkId)
{    
    
try
    {
        
var chkobj = eval("document.all." + chkId);
        
var result = false;    

        
if (chkobj.length==undefined){
                
if (chkobj.checked){
                    result 
= true;
                }
        }
        
else{    
            
for(var i=0;i<chkobj.length;i++){
                
if (chkobj[i].checked){
                    result 
= true;
                    
break;
                }
            }
        }
        
        
if (!result){
            alert(
"请选中要操作的记录!");
            
try{
                chkobj[
0].focus();            
            }
            
catch(ex){}
        }    
        
return result;
    }
    
catch(err)
    {
        alert(
"当前没有任何信息,请销后操作");
        
return false;
    }
}

function checkAll(allChkId,chkId)
       {
        
try
        {
            
var chkObj = eval("document.all." + chkId);
            
            
var chkAllObj = eval("document.all." + allChkId);
            
            
if (chkObj.length==undefined){
                chkObj.checked 
= chkAllObj.checked;
                
return;
            }
            
            
for (var i=0;i<chkObj.length;i++){
                chkObj[i].checked 
= chkAllObj.checked;
            }
        }
        
catch(err)
        {
            alert(
"当前没有任何信息,请稍后操作.");
        }
      }  


//身份证号码验证
function isIdCardNo(num)
{
    
if (isNaN(num)) {
        
//alert("输入的不是数字!"); 
        return false;
    }
    
var len = num.length, re; 
    
if (len == 15)
      re 
= new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
    
else if (len == 18)
      re 
= new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
    
else {
        
//alert("输入的数字位数不对!"); 
        return false;
    }
    
var a = num.match(re);
    
if (a != null)
    {
      
if (len==15)
      {
        
var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
        
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
      }
      
else
      {
        
var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
        
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
      }
      
if (!B) {
        
//alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); 
        return false;
        }
    }
    
return true;
}


//将页面中的关键字高亮显示,在body的onload中使用
function HighLight(nWord){
    
var oRange = document.body.createTextRange();
    
//var Arr = nWord.split(" ")     
    //for(var i=0;i<Arr.length;i++){    
        //while(oRange.findText(Arr[i])){
        while(oRange.findText(nWord)){
            oRange.pasteHTML(
"<span style='background-color:yellow;color:#ff0000'>" + oRange.text + "</span>");
            oRange.moveStart(
'character',1);
        
//}        
    }    
}


//将页面中的关键字高亮显示,在body的onload中使用(支持多个关键字,多个关键字用空格分开)
function highword(nWord)
{
    
//将全角空格(逗号)转半角空格
    nWord = nWord.replace(" "," ").replace(","," ").replace(""," ")
        
    
var Arr = nWord.split(" ");
    
for(var i=0;i<Arr.length;i++){
        HighLight(Arr[i]);
    }
}

//html中向aspx页面转递中文参数时js方法
function urlParm(TypeName){
    
return encodeURIComponent(TypeName);                           



//重新按比例显示图片(img onload="DrewImage(this,300,400)")
function DrawImage(ImgD,xx,yy){
   
var image=new Image();
   image.src
=ImgD.src;   
   
//document.frmupload.f_width.value=image.width;
   //document.frmupload.f_height.value=image.height;
   if(image.width>0 && image.height>0){
    flag
=true;
    
if(image.width/image.height>= xx/yy){
     
if(image.width>xx){  
     ImgD.width
=xx;
     ImgD.height
=(image.height*xx)/image.width;
     }else{
     ImgD.width
=image.width;  
     ImgD.height
=image.height;
     }
     
//ImgD.alt=image.width+"X"+image.height;
     }
    
else{
     
if(image.height>yy){  
     ImgD.height
=yy;
     ImgD.width
=(image.width*yy)/image.height;     
     }else{
     ImgD.width
=image.width;  
     ImgD.height
=image.height;
     }
     
//ImgD.alt=image.width+"X"+image.height;
     }
    }
   }

posted @ 2008-05-08 15:19  海底的鱼  阅读(519)  评论(1)    收藏  举报