台灣最大程式設計社群網站
線上人數
819
 
會員總數:244682
討論主題:188775
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> 一个非常强大完整的web表单验证程序
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
一个非常强大完整的web表单验证程序
價值 : 0 QP  點閱數:976 回應數:0

樓主

雪浪
初學者
98 4
148 14
發送站內信

捐贈 VP 給 雪浪
一个非常强大完整的web表单验证程序

/**
* <p>文件名称:validate_check.js
* <p>Description: 常用的一些网页输入控制.比如检查是否有为英文等等 </p>
* <p>=====================目 录=========================</p>
* <p>1 function ValidateUserName(Sting):一个常规的判断用户名是否合法的函数</p>
* <p>2 function CheckIfEmail(email):判断是否为合法email格式</p>
* <p>3 function CheckIfEnglish(String):判断是否为英文字母串(含数字)</p>
* <p>4 function CheckIfLowerWord(String):判断是否为小写字母串(含数字)</p>
* <p>5 function CheckIfUpperWord(String):判断是否为大写字母串(含数字)</p>
* <p>6 function CheckIfSpace(String):判断是否为空或为空格</p>
* <p>7 function CheckIfSpace(String):判断是否为空或为空格</p>
* <p>8 function Ltrim(str):去除一个字符串的左边空格,相当于常见的Ltrim()函数.</p>
* <p>9 function Ltrim(str):去除一个字符串的右边空格,相当于常见的Rtrim()函数.</p>
* <p>10 function Ctrim(str):去除一个字符串的前后空格,相当于常见的trim()函数.</p>
* <p>11 function Checkifnumber(num):判断是否为数字</p>
* <p>12 function CheckIfCardNum(String):简单地判断是否为证件号码</p>
* <p>13 function CheckIfInteger(String):判断是否为整数(正负均可).</p>
* <p>14 function CheckIfFloat(String):判断是否为浮点型数据(正负均可).</p>
* <p>15 function CheckValidateChar(strTemp):判断是否合法</p>
* <p>16 function CheckIfDate(strDate):判断一个字符串是否为合法日期,日期格式:YYYY-MM-DD</p>
* <p>17 function CheckIfPeriod(startDate,endDate):检查输入的起止日期是否正确,规则为两个日期的格式正确或都为空且结束日期>=起始日期(日期格式为yyyy-mm-dd)</p>
* <p>18 function ErrorAlert(item,text):常规的错误提示函数,给出提示信息后,聚焦在所指定的表单元素上.</p>
* <p>19 function checkAll():全选或全不选表单中的CHECKBOX元素</p>
* <p>20 function CheckIfAnyChecked(f):判断表单中是否checkbox被选中.</p>
* <p>21 function ChangeLayer(item):显示或隐藏图层.</p>
* @version 1.0
*/



/**
* 一个常规的判断用户名是否合法的函数
* @param Sting
* @return 如果通过验证返回true,否则返回false,并给出提示的错误信息;
*/
function ValidateUserName(Sting)
{
var flag1=true;
errInfo="";
if(Sting.length<1||Sting.length>20)
{
errInfo="您的用户明长度不符和规定!!"
flag1=false;
}
else
{
var compStr="?,.//\\\\">~`!@#$%^&*()_+-=[]{};\':\\"<>?,.//\\\\| ";
var length2=Sting.length;
for (var iIndex=0;iIndex<length2;iIndex++)
{
var temp1=compStr.indexOf(Sting.charAt(iIndex));
if(temp1>=0)
{
errInfo=errInfo+Sting.charAt(iIndex);
flag1=false;
}
}
if(!flag1)
errInfo="您的用户明中包含非法字符:\\n" +errInfo;
}
return flag1;
}



/**
* 判断一个字符串是否为合法email格式
* @param email
* @return 如果通过验证返回true,否则返回false,并给出提示的错误信息;
*/
function CheckIfEmail(email)
{
invalid = "";
if ( email.length== 0)
return true;
if (!email)
invalid = "请输入您的Email地址。";
else {
if ( (email.indexOf("@") == -1) || (email.indexOf(".") == -1) )
invalid += "\\n\\nEmail地址不合法。应当包含\'@\'和\'.\';例如(\'.com\')。请检查后再递交。";
if (email.indexOf("your email here") > -1)
invalid += "\\n\\nEmail地址不合法,请检测您的Email地址,在域名内应当包含\'@\'和\'.\';例如(\'.com\')。";



if (email.indexOf("\\\\") > -1)
invalid += "\\n\\nEmail地址不合法,含有非法字符(\\\\)。";
if (email.indexOf("/") > -1)
invalid += "\\n\\nEmail地址不合法,含有非法字符(/)。";
if (email.indexOf("\'") > -1)
invalid += "\\n\\nEmail地址不合法,含有非法字符(\')。";
if (email.indexOf("!") > -1)
invalid += "\\n\\nEmail地址不合法,含有非法字符(!)。";



if ( (email.indexOf(",") > -1) || (email.indexOf(";") > -1) )
invalid += "\\n\\n只输入一个Email地址,不要含有分号和逗号。";
if (email.indexOf("?subject") > -1)
invalid += "\\n\\n不要加入\'?subject=...\'。";
}
if (invalid == "")
{
return true;
}
else
{
alert("输入的Email可能包含错误:" + invalid);
return false;}
}



/**
* 判断是否为英文
* @param String
* @return 如果通过验证返回true,否则返回false
*/
function CheckIfEnglish( String )
{
var Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_";//可根据需要增加控制的字符
var i;
var c;
if ( String.length== 0)
return true;
if(String.charAt( 0 )==\'-\')
return false;
if( String.charAt( String.length - 1 ) == \'-\' )
return false;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}



/**
* 判断是否为小写字母
* @param String
* @return 如果通过验证返回true,否则返回false
*/
function CheckIfLowerWord( String )
{
var Letters = "abcdefghijklmnopqrstuvwxyz1234567890_";
var i;
var c;
if ( String.length== 0)
return true;
if(String.charAt( 0 )==\'-\')
return false;
if( String.charAt( String.length - 1 ) == \'-\' )
return false;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}



/**
* 判断是否为大写字母串
* @param String
* @return 如果通过验证返回true,否则返回false
*/
function CheckIfUpperWord( String )
{
var Letters = "ABCDEFGHIGKLMNOPQRSTUVWXYZ1234567890_";
var i;
var c;
if ( String.length== 0)
return true;
if(String.charAt( 0 )==\'-\')
return false;
if( String.charAt( String.length - 1 ) == \'-\' )
return false;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}



/**
* 判断是否为空或为空格
* @param String
* @return 如果通过验证返回true,否则返回false
*/
function CheckIfSpace(String)
{
if ( String == "" ) return true;
var regu = "^[ ]+$";
var re = new RegExp(regu);
return re.test(String);
}



/**
* 去除一个字符串的左边空格,相当于常见的Ltrim()函数.
* @param Str
* @return str
*/
function Ltrim(str){
var sTmpStr = \' \';
var i = -1;
//去前面空格
while(sTmpStr == \' \'){
++i;
sTmpStr = str.substr(i,1);
}
str = str.substring(i);
return str;
}



/**
* 去除一个字符串右边空格,相当于常见的Rtrim()函数.
* @param str
* @return str
*/
function Rtrim(str){
//去后面空格
sTmpStr = \' \';
i = str.length;
while(sTmpStr == \' \'){
--i;
sTmpStr = str.substr(i,1);
}
str = str.substring(0,i+1);
return str;
}



/**
* 去除一个字符串的前后空格,相当于常见的trim()函数.
* @param str
* @return str
*/
function Ctrim(str){
var sTmpStr =\'\';
sTmpStr=Ltrim(str);
sTmpStr=Rtrim(sTmpStr);
return sTmpStr;
}
/**
* 判断是否为数字
* @param num
* @return 如果通过验证返回true,否则返回false
*/
function Checkifnumber(num)
{
var i,j,strTemp;
strTemp="0123456789";
if ( num.length== 0)
return true;
for (i=0;i<num.length;i++)
{
j=strTemp.indexOf(num.charAt(i));
if (j==-1)
{
//说明有字符不是数字
return false;
}
}
//说明是数字
return true;
}



/**
* 判断是否为证件号码,这个只能简单地判断是否为证件号码中允许的字符
* 如果要判断很具体的话,需要建立相应的库来进行判断.
* @param String
* @return 如果通过验证返回true,否则返回false
*/
function CheckIfCardNum( String )
{
var Letters = "1234567890-*x";
var i;
var c;
if ( String.length== 0)
return true;
if(String.charAt( 0 )==\'-\')
return false;
if( String.charAt( String.length - 1 ) == \'-\' )
return false;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}
/**
* 判断是否为整数.
* @param String
* @return 如果通过验证返回true,否则返回false
*/
function CheckIfInteger( String ){
var regu = /^[-]{0,1}[0-9]{1,}$/;
return regu.test(String);
}
/**
* 判断是否为带小数的数字格式.
* @param String
* @return 如果通过验证返回true,否则返回false
*/
function CheckIfFloat( String )
{
if(CheckIfInteger(str)) return true;
var re = /^[-]{0,1}(\\d+)[\\.]+(\\d+)$/;
if (re.test(str)) {
if(RegExp.$1==0&&RegExp.$2==0) return false;
return true;
} else {
return false;
}
}



/**
* 判断输入是否合法
* @param strTemp
* @return 如果通过验证返回true,否则返回false
*/
function CheckValidateChar(strTemp){
if(strTemp==\'\')
return true;
else if ((strTemp.toLowerCase().indexOf("\'") < 0) &&
//(strTemp.toLowerCase().indexOf("\\"") < 0) &&
//(strTemp.toLowerCase().indexOf("<") < 0) &&
//(strTemp.toLowerCase().indexOf("&") < 0) &&
//(strTemp.toLowerCase().indexOf("\\n") < 0) &&
//(strTemp.toLowerCase().indexOf("\\t") < 0) &&
(strTemp.toLowerCase().indexOf("--") < 0) &&
(strTemp.toLowerCase().indexOf("//") < 0) &&
(strTemp.toLowerCase().indexOf("/*") < 0) &&
(strTemp.toLowerCase().indexOf("\\\\") < 0)){
return true;
}
else{
return false;
}
}



/**
* 判断一个字符串是否为合法日期,日期格式:YYYY-MM-DD
* @param strDate
* @return 如果通过验证返回true,否则返回false
*/
function CheckIfDate(strDate){
var strSeparator = "-"; //日期分隔符
var strDateArray;
var intYear;
var intMonth;
var intDay;
var boolLeapYear;
strDateArray = strDate.split(strSeparator);
if(strDateArray.length!=3)
return false;
intYear = parseInt(strDateArray[0],10);
intMonth = parseInt(strDateArray[1],10);
intDay = parseInt(strDateArray[2],10);



if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay))
return false;



if(intMonth>12||intMonth<1)
return false;



if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1))
return false;



if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1))
return false;



if(intMonth==2){
if(intDay<1) return false;
boolLeapYear = false;
if((intYear%100)==0){
if((intYear%400)==0) boolLeapYear = true;
}else{
if((intYear%4)==0) boolLeapYear = true;
}
if(boolLeapYear){
if(intDay>29) return false;
}else{
if(intDay>28) return false;
}
}
return true;
} 



/**
* 检查输入的起止日期是否正确,规则为两个日期的格式正确或都为空且结束日期>=起始日期
* 日期格式为:yyyy-mm-dd
* @param startDate:起始日期,字符串
* @param endDate: 结束日期,字符串
* @return 如果通过验证返回true,否则返回false
*/
function CheckIfPeriod(startDate,endDate ) {
if( !checkDate(startDate) ) {
window.alert("起始日期不正确!");
return false;
} else if( !checkDate(endDate) ) {
window.alert("终止日期不正确!");
return false;
}
var strSeparator = "-"; //日期分隔符
var strDateArrayStart;
var strDateArrayEnd;
var intDay
strDateArrayStart = strDateStart.split(strSeparator);
strDateArrayEnd = strDateEnd.split(strSeparator);
var strDateS = new Date(strDateArrayStart[0] + "/" + strDateArrayStart[1] + "/" + strDateArrayStart[2]);
var strDateE = new Date(strDateArrayEnd[0] + "/" + strDateArrayEnd[1] + "/" + strDateArrayEnd[2]);
intDay = (strDateS-strDateE)/(1000*3600*24)
if( intDay<0) {
alert("起始日期不能大于终止日期!");
return false;
}
return true;
}



/**
* 常规的错误提示函数,给出提示信息后,聚焦在所指定的表单元素上.
* 日期格式为:yyyy-mm-dd
* @param item:表单元素名称.如document.form1.user_name.
* @param text: 要提示的信息内容,字符串
* @return 显示错误信息
*/
function ErrorAlert(item,text){
window.alert(text);
item.select();
item.focus();
}



/**
* 选或全不选CHECKBOX元素
* @param form:要全部选择的表单名称
* @return 全选或全不选CHECKBOX
*/
function checkAll() {
var c = document.getElementsByTagName("INPUT");
var l = c.length;
var i;
var tag = 0;
var count = 0;
for(i = 0;i < l;i++) {
if(c.type == "checkbox") {
count++;
if (c.checked == true) tag++;
}
}
if (tag == 0) {
for(i = 0;i < l;i++) {
if(c.type == "checkbox") c.checked = true;
}
} else {
if (tag == count) {
for(i = 0;i < l;i++) {
if(c.type == "checkbox") c.checked = false;
}
} else {
for(i = 0;i < l;i++) {
if(c.type == "checkbox") c.checked = true;
}
}
}
}



/**
* 判断表单中是否checkbox被选中
* @param f:选择判断的表单名称
* @return 如果通过验证返回true,否则返回false
*/
function CheckIfAnyChecked(f){
var ifChecked = 0;
for(var i = 0;i < form2.length;i++) {
var e = f.elements;
if (e.type == "checkbox") {
if (e.checked) ifChecked = 1;
}
}
if (ifChecked == 0) {
alert("未选择任何信息!");
return false;
}
else
return true;



}
/**
* 显示或隐藏图层.
* @param item:要显示(隐藏)的图层名称
* @return 显示或隐藏图层
*/
function ChangeLayer(item)
{
if (item.style.display == "none")
item.style.display = ""
else
item.style.display= "none";
}

搜尋相關Tags的文章: [ web表单 ] , [ 表单验证 ] , [ 验证 ] ,
本篇文章發表於2006-12-27 09:57
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.