正則表達式驗證是否是地址
<script language=javascript>
function check()
{
//alert("IP地址輸入非法!");
var pattern=/^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/;
flag_ip=pattern.test(document.all.ip.value);
if(!flag_ip)
{
alert("IP地址輸入非法!");
document.all.ip.focus();
return false;
}
}
</script>
驗證是否是地址結束
============================================================================
表單定義:
<form name="form1" action="" style="behavior:url('form.htc')"></form>
客戶端表單驗證是由表單的onSubmit事件觸發(fā),由于表單的onSubmit事件只能由提交按鈕觸發(fā),
所以如果要用函數(shù)提交表單form1.submit(),則必須同時執(zhí)行form1.onSubmit()。
類型定義:
一、整型(int)
定義:
valueType="int"
屬性:
objName 對象名稱(字符串)
mustInput 必輸項(true/false)
minInput 最小值(數(shù)字)
maxInput 最大值(數(shù)字)
舉例:
<input type="text" name="test" valueType="int" objName="總載重噸" mustInput="true" maxInput="10000">
二、浮點型(float)
定義:
valueType="float"
屬性:
objName 對象名稱(字符串)
mustInput 必輸項(true/false)
minInput 最小值(數(shù)字)
maxInput 最大值(數(shù)字)
decimalLen小數(shù)位數(shù)(數(shù)字)
舉例:
<input type="text" name="test" valueType="float" objName="運價" mustInput="true" maxInput="10000.50" decimalLen="2">
三、字符串(string)
定義:
valueType="string"
屬性:
objName 對象名稱(字符串)
mustInput 必輸項(true/false)
stringLen 字符串長度(數(shù)字)
舉例:
<input type="text" name="test" valueType="string" objName="英文船名" mustInput="true" stringLen="100">
四、日期(date)
定義:
valueType="date"
屬性:
objName 對象名稱(字符串)
mustInput 必輸項(true/false)
舉例:
<input type="text" name="test" valueType="date" objName="開始日期" mustInput="true">
備注:
日期現(xiàn)在只能校驗的格式為(yyyy-mm-dd)
五、郵箱(email)
定義:
valueType="email"
屬性:
objName 對象名稱(字符串)
mustInput 必輸項(true/false)
舉例:
<input type="text" name="test" valueType="email" objName="郵箱" mustInput="true">
六、單選(radio)
定義:
valueType="radio"
屬性:
objName 對象名稱(字符串)
mustSelect 必輸項(true/false)
舉例:
<input type="radio" name="test" valueType="radio" objName="租船方式" mustSelect="true">
備注:
對于同一組單選按鈕,只需要定義第一個即可。
七、復選(checkbox)
定義:
valueType="checkbox"
屬性:
objName 對象名稱(字符串)
minSelect 最小選擇數(shù)(數(shù)字)
maxSelect 最大選擇數(shù)(數(shù)字)
舉例:
<input type="checkbox" name="test" valueType="checkbox" objName="愛好" minSelect="2" maxSelect="5">
備注:
對于同一組復選按鈕,只需要定義第一個即可。
八、下拉列表框(select)
定義:
valueType="select"
屬性:
objName 對象名稱(字符串)
mustSelect 必輸項(true/false)
舉例:
<select name="test" valueType="select" objName="租船方式" mustSelect="true">
九、列表框(list)
定義:
valueType="list"
屬性:
objName 對象名稱(字符串)
minSelect 最小選擇數(shù)(數(shù)字)
maxSelect 最大選擇數(shù)(數(shù)字)
舉例:
<select name="test" valueType="list" objName="愛好" minSelect="2" maxSelect="5">
/////////////////////////////////////////////////////////////////////////////////////////////////////////
<!-- ---------------------------------------------------------------------
//
// File: form.htc
// version: 1.0
// Description:客戶端表單驗證.
// author: 伍子
//
//-------------------------------------------------------------------- -->
<PUBLIC:COMPONENT id="formCheck" urn="wwb:formCheck">
<PUBLIC:ATTACH EVENT="onsubmit" ONEVENT="checkForm()"/>
<script language="JavaScript">
function checkForm()
{
var oForm=event.srcElement;
var eles = oForm.elements;
//遍歷所有表元素
for(var i=0;i<eles.length;i++)
{
//是否需要驗證
var sType=eles[i].valueType;
if(sType)
{
if(eles[i].mustInput!=null && eles[i].mustInput)
{
if(trim(eles[i].value)=="")
{
if(eles[i].objName!=null)
{
alert(eles[i].objName+"不可以為空");
}
else
{
alert("該文本框為必輸字段");
}
eles[i].focus();
event.returnValue=false;
return false;
}
}
switch(sType)
{
//整數(shù)
case "int":
if(!checkInt(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//小數(shù)
case "float":
if(!checkFloat(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//字符串
case "string":
if(!checkString(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//日期
case "date":
if(!checkDate(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//郵件
case "email":
if(!checkEmail(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//單選按鈕
case "radio":
if(!checkRadio(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//復選按鈕
case "checkbox":
if(!checkBox(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//下拉列表框
case "select":
if(!checkSelect(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//列表框
case "list":
if(!checkList(eles[i]))
{
event.returnValue=false;
return false;
}
break;
}
}
}
event.returnValue=true;
return true;
}
/***檢查是否為整數(shù)***/
function checkInt(ele)
{
if(!isInt(ele.value))
{
alert("請輸入有效整數(shù)");
ele.focus();
return false;
}
else
{
if(ele.maxInput!=null && !isNaN(ele.maxInput))
if(parseInt(ele.maxInput)<parseInt(ele.value))
{
alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput);
ele.focus();
return false;
}
if(ele.minInput!=null && !isNaN(ele.minInput))
if(parseInt(ele.minInput)>parseInt(ele.value))
{
alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput);
ele.focus();
return false;
}
}
return true;
}
/***檢查是否為小數(shù)***/
function checkFloat(ele)
{
if(isNaN(ele.value))
{
alert("請輸入有效數(shù)字");
ele.focus();
return false;
}
else
{
if(ele.decimalLen!=null && !checkDecimal(ele.value,ele.decimalLen))
{
alert("您輸入的"+convertNullToSpace(ele.objName)+"值小數(shù)位最多為"+ele.decimalLen);
ele.focus();
return false;
}
if(ele.maxInput!=null && !isNaN(ele.maxInput))
if(parseInt(ele.maxInput)<parseInt(ele.value))
{
alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput);
ele.focus();
return false;
}
if(ele.minInput!=null && !isNaN(ele.minInput))
if(parseInt(ele.minInput)>parseInt(ele.value))
{
alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput);
ele.focus();
return false;
}
}
return true;
}
/***檢查是否為字符串***/
function checkString(ele)
{
if(ele.stringLen!=null && !isNaN(ele.stringLen))
{
var value=new String(ele.value);
if(value.length>parseInt(ele.stringLen))
{
alert("您輸入的"+convertNullToSpace(ele.objName)+"最大長度為"+ele.stringLen);
ele.focus();
return false;
}
}
return true;
}
/***檢查是否為日期格式***/
function checkDate(ele)
{
if(!isDate(ele.value))
{
alert("請輸入有效日期(yyyy-mm-dd)");
ele.focus();
return false;
}
return true;
}
/***檢查是否為電子郵箱***/
function checkEmail(ele)
{
if(!isEmail(ele.value))
{
alert("請輸入有效郵箱");
ele.focus();
return false;
}
return true;
}
/***檢查單選按鈕是否需要選擇***/
function checkRadio(ele)
{
//var rads = document.getElementsByName(ele.name);
eval("var rads="+name+"."+ele.name);
var selectCount=0;
for(var i=0;i<rads.length;i++)
{
if(rads[i].checked)
{
selectCount++;
}
}
if(ele.mustSelect!=null && ele.mustSelect)
{
if(selectCount==0)
{
alert("請選擇"+convertNullToSpace(ele.objName));
ele.focus();
return false;
}
}
return true;
}
/***檢查復選按鈕是否需要選擇***/
function checkBox(ele)
{
//var rads = document.getElementsByName(ele.name);
eval("var chks="+name+"."+ele.name);
var selectCount=0;
for(var i=0;i<chks.length;i++)
{
if(chks[i].checked)
{
selectCount++;
}
}
if(ele.minSelect!=null && !isNaN(ele.minSelect))
{
if(selectCount<parseInt(ele.minSelect))
{
alert(convertNullToSpace(ele.objName)+"至少選擇"+ele.minSelect+"項");
ele.focus();
return false;
}
}
if(ele.maxSelect!=null && !isNaN(ele.maxSelect))
{
if(selectCount>parseInt(ele.maxSelect))
{
alert(convertNullToSpace(ele.objName)+"至多選擇"+ele.maxSelect+"項");
ele.focus();
return false;
}
}
return true;
}
/***檢查下拉列表框是否需要選擇***/
function checkSelect(ele)
{
//var rads = document.getElementsByName(ele.name);
if(ele.mustSelect!=null && ele.mustSelect)
{
if(ele.selectedIndex==0)
{
alert("請選擇"+convertNullToSpace(ele.objName));
ele.focus();
return false;
}
}
return true;
}
/***檢查列表框的選擇項數(shù)***/
function checkList(ele)
{
//var rads = document.getElementsByName(ele.name);
var selectCount=0;
for(var i=0;i<ele.options.length;i++)
{
if(ele.options[i].selected)
{
selectCount++;
}
}
alert(selectCount);
if(ele.minSelect!=null && !isNaN(ele.minSelect))
{
if(selectCount<parseInt(ele.minSelect))
{
alert(convertNullToSpace(ele.objName)+"至少選擇"+ele.minSelect+"項");
ele.focus();
return false;
}
}
if(ele.maxSelect!=null && !isNaN(ele.maxSelect))
{
if(selectCount>parseInt(ele.maxSelect))
{
alert(convertNullToSpace(ele.objName)+"至多選擇"+ele.maxSelect+"項");
ele.focus();
return false;
}
}
return true;
}
/***判斷是否為整數(shù)***/
function isInt(s)
{
var patrn=/^[-,+]{0,1}[0-9]{0,}$/;
if (!patrn.exec(s))
return false;
return true;
}
/***判斷是否為數(shù)字***/
function isNumber(s)
{
var patrn=/^[-,+]{0,1}[0-9]{0,}[.]{0,1}[0-9]{0,}$/;
if (!patrn.exec(s))
return false;
return true;
}
/***判斷是否為日期***/
function isDate(str)
{
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)
{
return false;
}
var d= new Date(r[1], r[3]-1, r[4]);
if(!(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]))
{
return false;
}
return true;
}
/***判斷是否為郵箱***/
function isEmail(str)
{
if(str.match(/[\w-]+@{1}[\w-]+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig)!=str)
return false;
else
return true;
}
/***將NULL轉化為空格,用于顯示對象名稱***/
function convertNullToSpace(paramValue)
{
if(paramValue==null)
return "";
else
return paramValue;
}
/***檢查小數(shù)位數(shù)***/
function checkDecimal(num,decimalLen)
{
var len = decimalLen*1+1;
if(num.indexOf('.')>0)
{
num=num.substr(num.indexOf('.')+1,num.length-1);
if ((num.length)<len)
{
return true;
}
else
{
return false;
}
}
return true;
}
/***去除空格***/
function trim(str)
{
if (str.length > 0)
{
while ((str.substring(0,1) == " ") && (str.length > 0))
{
str = str.substring(1,str.length);
}
while (str.substring(str.length-1,str.length) == " ")
{
str = str.substring(0,str.length-1);
}
}
return str;
}
</script>
</PUBLIC:COMPONENT>
posted on 2007-12-11 11:31
煒 閱讀(182)
評論(0) 編輯 收藏 所屬分類:
java基礎