查看文章
 
js验证大全(5)
2008-10-28 19:07

//'*********************************************************
// ' Purpose: 将数值类型转化为String
// ' Inputs:   int
// ' Returns: String
//'*********************************************************
function CStr(inp)
{
   return(""+inp+"");
}
//'*********************************************************


//'*********************************************************
// ' Purpose: 去除不合法字符,   ' " < >
// ' Inputs:   String
// ' Returns: String
//'*********************************************************
function Rep(str)
{var str1;
str1=str;
str1=replace(str1,"'","`",1,0);
str1=replace(str1,'"',"`",1,0);
str1=replace(str1,"<","(",1,0);
str1=replace(str1,">",")",1,0);
return str1;
}
//'*********************************************************

//'*********************************************************
// ' Purpose: 替代字符
// ' Inputs:   目标String,欲替代的字符,替代成为字符串,大小写是否敏感,是否整字代替
// ' Returns: String
//'*********************************************************
function replace(target,oldTerm,newTerm,caseSens,wordOnly)
{ var wk ;
var ind = 0;
var next = 0;
wk=CStr(target);
if (!caseSens)
{
     oldTerm = oldTerm.toLowerCase();   
     wk = target.toLowerCase();
   }
while ((ind = wk.indexOf(oldTerm,next)) >= 0)
{
        if (wordOnly)
             {
                 var before = ind - 1;    
               var after = ind + oldTerm.length;
                 if (!(space(wk.charAt(before)) && space(wk.charAt(after))))
                   {
                     next = ind + oldTerm.length;    
                      continue;     
                  }
         }
    target = target.substring(0,ind) + newTerm + target.substring(ind+oldTerm.length,target.length);
    wk = wk.substring(0,ind) + newTerm + wk.substring(ind+oldTerm.length,wk.length);
    next = ind + newTerm.length;   
    if (next >= wk.length) { break; }
}
return target;
}
//'*********************************************************


几个判断,并强制设置焦点:
//+------------------------------------
// trim     去除字符串两端的空格
String.prototype.trim=function(){return this.replace(/(^ *)|( *$)/g,"")}
//-------------------------------------

// avoidDeadLock 避免设置焦点死循环问题
// 起死原因:以文本框为例,当一个文本框的输入不符合条件时,这时,鼠标点击另一个文本框,触发第一个文本框的离开事件
//   ,产生设置焦点动作。现在产生了第二个文本框的离开事件,因此也要设置第二个文本框的焦点,造成死锁。
// 解决方案:设置一个全局对象[key],记录当前触发事件的对象,若其符合条件,则释放该key;若其仍不符合,则key还是指
//   向该对象,别的对象触发不到设置焦点的语句。
/////////////////////////////////////////
// 文本框控制函数
//
/////////////////////////////////////////
var g_Obj = null;// 记住旧的控件
// hintFlag参数:0表示没有被别的函数调用,因此出现提示;1表示被调用,不出现警告信息
// focusFlag参数:指示是否要设置其焦点,分情况:0表示有的可为空;1表示有的不为空
// 避免死锁的公共部分
//+------------------------------------
function textCom(obj, hintFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();
}
//-------------------------------------
// 文本框不为空
//+------------------------------------
function TBNotNull(obj, hintFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();

if (g_Obj.value == "")
{
if (hintFlag == 0)
{
g_Obj.focus();
alert("内容不能为空!");
}
return false;
}
else
g_Obj = null;

return true;
}
//-------------------------------------
// 输入内容为数字
//+------------------------------------
function LetNumber(obj, hintFlag, focusFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();

if ((g_Obj.value == "") || isNaN(g_Obj.value))
{
if (hintFlag == 0)
{

g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
alert("输入的内容必须为数字!");
}
return false;
}
else
g_Obj = null;

return true;
}
//-------------------------------------
// 输入内容为整数
//+------------------------------------
function LetInteger(obj, hintFlag, focusFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();

if (!/^\d*$/.test(g_Obj.value) || (g_Obj.value == ""))
{
if (hintFlag == 0)
{

g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
alert("输入的内容必须为整数!");
}
return false;
}
else
g_Obj = null;

return true;
}
//-------------------------------------
// 输入内容为字母
//+------------------------------------
function LetLetter(obj, hintFlag, focusFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}

if (!/^[A-Za-z]*$/.test(g_Obj.value))
{
if (hintFlag == 0)
{
alert("输入的内容必须为字母!");
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
}
return false;
}
else
{
g_Obj = null;
}

return true;
}
//-------------------------------------
// 内容大于某值
//+------------------------------------
function LetMoreThan(obj, leftNumber, hintFlag, focusFlag)
{
var ifAlert;// 是否出现警告
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}

g_Obj.value = g_Obj.value.trim();
if (g_Obj.value == "")
ifAlert = 0;
else
ifAlert = 1;

if ((g_Obj.value == "") || (isNaN(g_Obj.value)) || (g_Obj.value < leftNumber))
{
if (hintFlag == 0)
{
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
// 更友好的提示
if (ifAlert == 1)
{
if (leftNumber == 0)
alert("内容必须为非负数!");
else
alert("输入的内容必须" + leftNumber + "以上!");
}
}
return false;
}
else
g_Obj = null;

return true;
}
//-------------------------------------
// 内容大于某值,整数
//+------------------------------------
function LetMoreThan_Int(obj, leftNumber, hintFlag, focusFlag)
{
var ifAlert;// 是否出现警告
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();
if (g_Obj.value == "")
ifAlert = 0;
else
ifAlert = 1;
if ((g_Obj.value == "") || (isNaN(g_Obj.value) || g_Obj.value < leftNumber) || !/^\d*$/.test(g_Obj.value))
{
if (hintFlag == 0)
{
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
{g_Obj = null;}
if (ifAlert == 1)// 当用户不输入的时候,不出现提示
{
// 更友好的提示
if (leftNumber == 0)
alert("内容必须为非负整数!");
else
alert("且必须在" + leftNumber + "以上!");
}
}
return false;
}
else
g_Obj = null;

return true;
}
//-------------------------------------
// 内容小于某值
//+------------------------------------
function LetLessThan(obj, rightNumber, hintFlag, focusFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();

if ((g_Obj.value == "") || (isNaN(g_Obj.value) || g_Obj.value > rightNumber))
{
if (hintFlag == 0)
{
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
alert("输入的内容必须在" + rightNumber + "以下!");
}
return false;
}
else
{g_Obj = null;}

return true;
}
//-------------------------------------
// 内容介于两值中间
//+------------------------------------
function LetMid(obj, leftNumber, rightNumber, hintFlag, focusFlag)
{
var ifAlert;// 是否出现警告
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();
if (g_Obj.value == "")
ifAlert = 0;
else
ifAlert = 1;
// 首先应该为数字
if (LetNumber(g_Obj, 1))
{
if (!(LetMoreThan(obj,leftNumber,1,0) && LetLessThan(obj,rightNumber,1,0)))
{
if (hintFlag == 0)
{
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
if (ifAlert == 1)// 当用户不输入的时候,不出现提示
alert("输入的内容必须介于" + leftNumber + "和" + rightNumber + "之间!");
}

return false;
}
else
{g_Obj = null;}
}
else
{
if (hintFlag == 0)
{

g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
if (ifAlert == 1)
alert("输入的内容必须为数字!\n" +
"且介于" + leftNumber + "和" + rightNumber + "之间!");
}

return false;
}

return true;
}
//-------------------------------------
/////////////////////////////////////////
// 下拉框
/////////////////////////////////////////
// 下拉框,务必选择
//+------------------------------------
function onSelLostFocus(obj)
{
if (g_Obj == null)
{
g_Obj=event.srcElement;
}
else if ((g_Obj!=null) && (g_Obj!=obj))
{
g_Obj = null;
return;
}

if (g_Obj.selectedIndex == 0)
{
g_Obj.focus();
}
else
{
g_Obj = null;
}
}


/*
   随风javascript函数库
请把经过测试的函数加入库
*/


/********************
函数名称:StrLenthByByte
函数功能:计算字符串的字节长度,即英文算一个,中文算两个字节
函数参数:str,为需要计算长度的字符串
********************/
function StrLenthByByte(str)
{
var len;
var i;
len = 0;
for (i=0;i<str.length;i++)
{
if (str.charCodeAt(i)>255) len+=2; else len++;
}
return len;
}

/********************
函数名称:IsEmailAddress
函数功能:检查Email邮件地址的合法性,合法返回true,反之,返回false
函数参数:obj,需要检查的Email邮件地址
********************/
function IsEmailAddress(obj)
{
var pattern=/^[a-zA-Z0-9\-]+@[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3})$/;
if(pattern.test(obj))
{
return true;
}
else
{
return false;
}
}

/********************
函数名称:PopWindow
函数功能:弹出新窗口
函数参数:pageUrl,新窗口地址;WinWidth,窗口的宽;WinHeight,窗口的高
********************/
function PopWindow(pageUrl,WinWidth,WinHeight)
{
var popwin=window.open(pageUrl,"PopWin","scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,width="+WinWidth+",height="+WinHeight);
return false;
}

/********************
函数名称:PopRemoteWindow
函数功能:弹出可以控制父窗体的原程窗口
函数参数:pageUrl,新窗口地址;
调用方法:打开窗口:<a href="javascript:popRemoteWindow(url);">Open</a>
         控制父窗体:opener.location=url;当然还可以有其他的控制
********************/
function PopRemoteWindow(pageUrl)
{
var remote=window.open(url,"RemoteWindow","scrollbars=yes,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,resizable=yes");
if(remote.opener==null)
{
remote.opener=window;
}
}


/********************
函数名称:IsTelephone
函数功能:固话,手机号码检查函数,合法返回true,反之,返回false
函数参数:obj,待检查的号码
检查规则:
  (1)电话号码由数字、"("、")"和"-"构成
  (2)电话号码为3到8位
  (3)如果电话号码中包含有区号,那么区号为三位或四位
  (4)区号用"("、")"或"-"和其他部分隔开
  (5)移动电话号码为11或12位,如果为12位,那么第一位为0
  (6)11位移动电话号码的第一位和第二位为"13"
  (7)12位移动电话号码的第二位和第三位为"13"
********************/
function IsTelephone(obj)
{
var pattern=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/;
if(pattern.test(obj))
{
return true;
}
else
{
return false;
}
}

/********************
函数名称:IsLegality
函数功能:检查字符串的合法性,即是否包含" '字符,包含则返回false;反之返回true
函数参数:obj,需要检测的字符串
********************/
function IsLegality(obj)
{
var intCount1=obj.indexOf("\"",0);
var intCount2=obj.indexOf("\'",0);
if(intCount1>0 || intCount2>0)
{
return false;
}
else
{
return true;
}
}

/********************
函数名称:IsNumber
函数功能:检测字符串是否全为数字
函数参数:str,需要检测的字符串
********************/
function IsNumber(str)
{
var number_chars = "1234567890";
var i;
for (i=0;i<str.length;i++)
{
if (number_chars.indexOf(str.charAt(i))==-1) return false;
}
return true;
}

/********************
函数名称:Trim
函数功能:去除字符串两边的空格
函数参数:str,需要处理的字符串
********************/
function Trim(str)
{
return str.replace(/(^ *)|( *$)/g, "");
}

/********************
函数名称:LTrim
函数功能:去除左边的空格
函数参数:str,需要处理的字符串
********************/
function LTrim(str)
{
return str.replace(/(^ *)/g, "");
}

/********************
函数名称:RTrim
函数功能:去除右边的空格
函数参数:str,需要处理的字符串
********************/
function RTrim(str)
{
return this.replace(/( *$)/g, "");
}

/********************
函数名称:IsNull
函数功能:判断给定字符串是否为空
函数参数:str,需要处理的字符串
********************/
function IsNull(str)
{
if(Trim(str)=="")
{
return false;
}
else
{
return true;
}
}

/********************
函数名称:CookieEnabled
函数功能:判断cookie是否开启
********************/
function CookieEnabled()
{
return (navigator.cookieEnabled)? true : false;
}


/*字符串替换方法*/
function StrReplace(srcString,findString,replaceString,start)
{
//code
}

/*客户端HTML编码*/
function HtmlEncode(str)
{
//code
}


/********************************************************************
**
*函数功能:判断是否是闰年*
*输入参数:数字字符串*
*返回值:true,是闰年/false,其它*
*调用函数:*
**
********************************************************************/
function IsLeapYear(iYear)
{
if (iYear+"" == "undefined" || iYear+""== "null" || iYear+"" == "")
return false;

iYear = parseInt(iYear);
varisValid= false;

if((iYear % 4 == 0 && iYear % 100 != 0) || iYear % 400 == 0)
isValid= true;

return isValid;  
}
/********************************************************************
**
*函数功能:取出指定年、月的最后一天*
*输入参数:年份,月份*
*返回值:某年某月的最后一天*
*调用函数:IsLeapYear*
**
********************************************************************/
function GetLastDay(iYear,iMonth)
{
iYear = parseInt(iYear);
iMonth = parseInt(iMonth);

variDay = 31;

if((iMonth==4||iMonth==6||iMonth==9||iMonth==11)&&iDay == 31)
iDay = 30;

if(iMonth==2 )
if (IsLeapYear(iYear))
iDay = 29;
else
iDay = 28;
return iDay;  
}
/********************************************************************
**
*函数功能:去字符串的头空和尾空*
*输入参数:字符串*
*返回值:字符串/null如果输入字符串不正确*
*调用函数:TrimLeft() 和 TrimRight()*
**
********************************************************************/
function Trim( str )
{
varresultStr ="";

resultStr =TrimLeft(str);
resultStr =TrimRight(resultStr);

return resultStr;
}

/********************************************************************
**
*函数功能:去字符串的头空*
*输入参数:字符串*
*返回值:字符串/null如果输入字符串不正确*
*调用函数:*
**
********************************************************************/
function TrimLeft( str )
{
varresultStr ="";
vari =len= 0;

if (str+"" == "undefined" || str ==null)
return null;

str+= "";

if (str.length == 0)
resultStr ="";
else
{
len= str.length;

while ((i <= len) && (str.charAt(i)== " "))
i++;

resultStr =str.substring(i, len);
}

return resultStr;
}

/********************************************************************
**
*函数功能:去字符串的尾空*
*输入参数:字符串*
*返回值:字符串/null如果输入字符串不正确*
*调用函数:*
**
********************************************************************/
function TrimRight(str)
{
varresultStr ="";
vari =0;

if (str+"" == "undefined" || str ==null)
return null;

str+= "";

if (str.length == 0)
resultStr ="";
else
{
i =str.length - 1;
while ((i >= 0)&& (str.charAt(i) == " "))
i--;

resultStr =str.substring(0, i + 1);
}

return resultStr;
}

/********************************************************************
**
*函数功能:判断输入的字符串是否为数字*
*输入参数:输入的对象*
*返回值:true-数字/false-非数字*
*调用函数:*
**
********************************************************************/
function isNumber(objName)
{
var strNumber = objName.value;
var intNumber;

if(Trim(strNumber) == "")
{
return true;
}

intNumber = parseInt(strNumber, 10);
if (isNaN(intNumber))
{
alert("请输入数字.");
objName.focus();
return false;
}
return true;
}

/********************************************************************
**
*函数功能:判断输入的字符串是否为数字*
*输入参数:输入的对象*
*返回值:true-数字/false-非数字*
*调用函数:*
**
********************************************************************/
function isFloat(objName)
{
var strFloat = objName.value;
var intFloat;

if(Trim(strFloat) == "")
{
return true;
}

intFloat = parseFloat(strFloat);
if (isNaN(intFloat))
{
alert("Please input a number.");
objName.focus();
return false;
}
return true;
}

}


/********************************************************************
**
*函数功能:判断输入的字符串是否为合法的时间*
*输入参数:输入的字符串*
*返回值:true-合法的时间/false-非法的时间*
*调用函数:*
**
********************************************************************/
function checkDate(strDate)
{
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var strSeparator = "-";
var err = 0;

strDateArray = strDate.split(strSeparator);

if (strDateArray.length != 3)
{
err = 1;
return false;
}
else
{
strYear = strDateArray[0];
strMonth = strDateArray[1];
strDay = strDateArray[2];
}

intday = parseInt(strDay, 10);
if (isNaN(intday))
{
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth))
{
       err = 3;
return false;
}
intYear = parseInt(strYear, 10);
if(strYear.length != 4)
{
return false;
}
if (isNaN(intYear))
{
err = 4;
return false;
}


if (intMonth>12 || intMonth<1)
{
err = 5;
return false;
}

if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1))
{
err = 6;
return false;
}

if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1))
{
err = 7;
return false;
}

if (intMonth == 2)
{
if (intday < 1)
{
err = 8;
return false;
}

if (LeapYear(intYear) == true)
{
if (intday > 29)
{
err = 9;
return false;
}
}
else
{
if (intday > 28)
{
err = 10;
return false;
}
}
}

return true;
}


类别:Javascript||添加到搜藏 |分享到i贴吧|浏览(58)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu