/*
Date | Author | Project | Change Description
20031023| corlin chen | 天津大客户 | 添加多个电话号码输入框的验证.
********************基本格式*******************************
例字符类型,最大长度为32,最小为20
例货币类型,金额最大为1000
类型:(必填)
string 字符型
zip 邮政编码型
money 货币型
0-9 0-9型
int 整型 可以为负数
float 浮点型 可以为负数
email 电子邮件型
date 日期型 (属性由month,day,输入表单元素的名称name)
pwd 密码型 (属性有pwd2,输入校验密码的域名)
phone 电话型
phones 多个电话号码型
idcard 身份证型
属性:v_minlength 最小长度(最大长度可以用size)(如果等于0,表示此项可以为空,如果等于null,或一个数字说明不能为空)
v_maxvalue 最小值
v_minivalue 最大值
v_name 报错时显示的名称
v_must 必填项(1,必填 0非必填)
v_maxlength 最大长度
v_type 类型(必填)
××××××××××××入口函数×××××××××××××××××××
function check(formname)
××××××××××××基本函数列表×××××××××××××××××××
function boolean isMadeOf(value,str) //判断value中的字符是否由str中的字符组成
function boolean isSizeOf(value,max,min)//判断value的大小是否由符合标准
function boolean isLengthOf(value,max,min)//判断value的长度是否由符合标准
function boolean isNotNull(value)//判断value是否空或null
function trimSubStr(ATrimStr,ASubStr,AWhere)//去掉符合条件的字符,用于去空格
××××××××××××扩充函数列表×××××××××××××××××××
function void packUp(obj)//整理域的属性值,校验v_×域的值是否符合标准
××××××××××××××××××接口函数列表××××××××××××××××××××
function void forString(obj)//判断一般字符串的长度
function void forZip(obj)//判断邮政编码
function void forMoney(obj)//判断金额
function void for0-9(obj)//判断字符是否由0-9个数字组成
function void forInt(obj)//判断字符是否是整数组成,可以为负数
function void forFloat(obj)//判断字符是否是数字,可以有小数点,负数
function void forEmail(obj)//判断字符是合法的电子邮件
function void forDate(obj1,obj2,obj2)//判断字符是合法的日期
function void forPwd(obj1,obj2)//判断字符密码,两次输入密码是否相等
function void forPhone(obj)//判断字符是否是合法的电话021-55555555,(021)2222222,
function void forPhones(obj)//判断字符是否是合法的多个电话021-55555555;(021)2222222,
function void forMadeOf(obj,str)//判断字符是否是由str里的字符组成
function void forIdCard(obj1)//判断字符是否是合法的身份证号
*/
//*****************全局变量****************************
var numStr="0123456789";
var moneyStr = numStr + ".";//金额的组成,浮点数的组成
var intStr = numStr+"-";
var floatStr = moneyStr+"-";
var phoneStr = "()-#" + numStr;//电话号码
var phonesStr = ";;" + numStr;//多个电话号码
var flag = 0;
//*********************入口函数***************************
function check(form)
{ var obj = null;
var t = null;
var i;
for (i=0;i
maxval){
return false;
}
}
if (!isNaN(minval)){
if (selval < minval){
return false;
}
}
/*
if (val < min || val > max){
return false;
}
*/
return (true);
}
function isLengthOf(val,min,max)
{
var minlen = parseInt(min);
var maxlen = parseInt(max);
if (!isNaN(maxlen)){
if (val.length > maxlen){
return false;
}
}
if (!isNaN(minlen)){
if (val.length < minlen){
return false;
}
}
/*
if (val.length < minlen || val.lengh > maxlen ){
return false;
}
*/
return true;
}
//判断小数点
function isValid_dot(val)
{
var subvalue;
if (val.indexOf(".",0) != -1){
subvalue = val.substring(val.indexOf(".",0)+1);
if (subvalue.indexOf(".",0) != -1){
return false;
}
}
return true;
}
//判断负号
function isValid_negative(val)
{
var subvalue;
if (val.indexOf("-",0) != -1){
if (val.indexOf("-",0) > 0){
return false;
}
subvalue = val.substring(val.indexOf("-",0)+1);
if (subvalue.indexOf("-",0) != -1){
return false;
}
}
return true;
}
//判断合适长度
function isRight_length(val,num)
{
var len = parseInt(num);
if (isNaN(len)){ return true;}
if (val.length != len){
return false;
}
return true;
}
//***************************************************************************************************
//--- 从ATrimStr中去掉符合条件的字符串ASubStr
//--- 参数:
//--- ATrimStr:要去掉符合条件字符串的字符串
//--- ASubStr:要去掉的子字符串
//--- AWhere 0:去掉所有的, 1:去掉左边相连的,2:去掉右面的相连的
//--- 返回: 处理完的字符串
//--- 创建日期: 2001-07-27 最近更新日期: 2001-07-27
//--- 创建程序员: xg_delayth 最近更新程序员: xg_delayth
//--- 维护程序员: xg_delayth
//--- 举例: trimSubStr(" usj 29 "," ",0) 返回 "usj29"
function trimSubStr(ATrimStr,ASubStr,AWhere){
var tTrLength,tSbLength,tempLength;
var tempString;
var i;
tTrLength = ATrimStr.length;
tSbLength = ASubStr.length;
if (tSbLength == 0){return ATrimStr;}
if (tSbLength > tTrLength){return ATrimStr;}
tempString = ATrimStr;
switch(AWhere){
case 0://所有
do{
tempLength = tempString.length;
tempString = tempString.replace(ASubStr,"");
} while(tempLength != tempString.length);
break;
case 1://左
while (true){
if (tempString.length < tSbLength) break;
for (i = 0;i < tSbLength;i++)
if (ASubStr.charAt(i) != tempString.charAt(i))
return tempString;
tempString = tempString.replace(ASubStr,"");
};
case 2://右
while(true){
tempLength = tempString.length;
if (tempLength < tSbLength){return tempString;}
for (i = 0;i < tSbLength;i ++){
if (ASubStr.charAt(i) != tempString.charAt(tempLength - tSbLength+i)){
return tempString;
}
}
tempString = tempString.substr(0,tempLength-tSbLength);
};
default:
return tempString;
}
return tempString;
}
//***************************************************************************************************
//××××××××××××扩充函数列表×××××××××××××××××××
//整理域的属性值,校验v_×域的值是否符合标准
function packUp(obj)
{
if (obj == null){
alert("非法对象");
return false;
}
if (obj.value != null){
obj.value = trimSubStr(trimSubStr(obj.value," ",1)," ",2);
}
//创建v_name属性
try{
if (obj.v_name == null){
//alert("创建v_name属性");
obj.v_name = new String(obj.name);
}
}catch(exception){}
//创建v_type属性
try{
if (obj.v_type == null){
//alert("创建v_type属性");
obj.v_type = new String("string");
}
}catch(exception){}
//创建v_minlength属性
try{
if (obj.v_minlength == null){
//alert("创建v_minlength属性");
obj.v_minlength = new String("0");
}
}catch(exception){}
//创建v_maxlength属性
try{
if (obj.v_maxlength == null){
//alert("创建v_maxlength属性");
obj.v_maxlength = new String("");
}
}catch(exception){}
//创建v_maxvalue属性
try{
if (obj.v_maxvalue == null){
//alert("创建v_maxvalue属性");
obj.v_maxvalue = new String("");
}
}catch(exception){}
//创建v_minvalue属性
try{
if (obj.v_minvalue == null){
//alert("创建v_minvalue属性");
obj.v_minvalue = new String("");
}
}catch(exception){}
//创建v_must属性
try{
if (obj.v_must == null){
//alert("创建v_must属性");
obj.v_must = new String("0");
}
}catch(exception){}
return true;
}
//*********************扩充函数***************************
function forDate(useryear,usermonth,userday)
{
var myyear;
var mymonth;
var myday;
//myyear=parseInt(useryear);
//mymonth=parseInt(usermonth);
//myday=parseInt(userday);
myyear=useryear;
mymonth=usermonth;
myday=userday;
if (myyear < 1950 || myyear > 2050 ||mymonth < 1 ||mymonth > 12 || myday < 1 || myday > 31)
return (false);
if(mymonth==4 || mymonth==6 || mymonth==9 || mymonth==11)
{
if(myday>30)
return (false);
}
if(myyear%4==0)
{
if((myyear%100==0 && myyear%400==0) || myyear%100!=0)
{
if(mymonth==2 && myday>29)
return (false);
else
return (true);
}
}
else
{
if(mymonth==2 && myday>28)
return (false);
else
return (true);
}
}
function forString(obj)//判断一般字符串的长度
{
//必填项判断
if (obj.v_must!="0"){
if (obj.value.length == 0){
alert("'" + obj.v_name + "'为必填项,请务必填写");
flag = 1;
obj.focus();
return false;
}
}
if (!isLengthOf(obj.value,obj.v_minlength,obj.v_maxlength)){
flag = 1;
alert("'"+obj.v_name+"'的值不正确!长度有错误!");
obj.focus();
return false;
}
return true;
}
function forZip(obj)//判断邮政编码
{
if (!forString(obj)){
flag = 1;
obj.focus();
return false;
}else{
if (obj.value.length == 0){
return true;
}
}
if (!isMadeOf(obj.value,numStr)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!请输入数字!");
obj.focus();
return false;
}
if (!isRight_length(obj.value,"6")){
flag = 1;
alert("'"+obj.v_name+"'的值不正确!长度有错误!(6位数字)");
obj.focus();
return false;
}
return true;
}
function forMoney(obj)//判断金额
{
if (!forString(obj)){
flag = 1;
obj.focus();
return false;
}else{
if (obj.value.length == 0){
return true;
}
}
if (!isMadeOf(obj.value,moneyStr)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!请输入数字!");
obj.focus();
return false;
}
if (!isValid_dot(obj.value)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!小数点有错误!");
obj.focus();
return false;
}
if (!isSizeOf(obj.value,obj.v_minvalue,obj.v_maxvalue)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!超出规定范围!");
obj.focus();
return false;
}
return true;
}
function for0_9(obj) //判断字符是否由0-9个数字组成
{
if (!forString(obj)){
flag = 1;
obj.focus();
return false;
}else{
if (obj.value.length == 0){
return true;
}
}
if (!isMadeOf(obj.value,numStr)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!请输入数字!");
obj.focus();
return false;
}
return true;
}
function forInt(obj)//判断字符是否是整数组成,可以为负数
{
if (!forString(obj)){
flag = 1;
obj.focus();
return false;
}else{
if (obj.value.length == 0){
return true;
}
}
if (!isMadeOf(obj.value,intStr)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!请输入数字!");
obj.focus();
return false;
}
if (!isValid_negative(obj.value)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!'-'符号有错误!");
obj.focus();
return false;
}
if (!isSizeOf(obj.value,obj.v_minvalue,obj.v_maxvalue)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!超出规定范围!");
obj.focus();
return false;
}
return true;
}
function forFloat(obj)//判断字符是否是数字,可以有小数点,负数
{
if (!forString(obj)){
flag = 1;
obj.focus();
return false;
}else{
if (obj.value.length == 0){
return true;
}
}
if (!isMadeOf(obj.value,floatStr)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!请输入数字!");
obj.focus();
return false;
}
if (!isValid_dot(obj.value)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!小数点有错误!");
obj.focus();
return false;
}
if (!isValid_negative(obj.value)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!'-'符号有错误!");
obj.focus();
return false;
}
if (!isSizeOf(obj.value,obj.v_minvalue,obj.v_maxvalue)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!超出规定范围!");
obj.focus();
return false;
}
return true;
}
function forPhone(obj)//判断字符是否是合法的电话021-55555555,(021)2222222,
{
if (!forString(obj)){
flag = 1;
obj.focus();
return false;
}else{
if (obj.value.length == 0){
return true;
}
}
if (!isMadeOf(obj.value,phoneStr)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!请填写数字,可以包含(,),-,#符号");
obj.focus();
return false;
}
}
function forPhones(obj)//判断字符是否是合法的电话021-55555555;(021)2222222,
{
if (!forString(obj)){
flag = 1;
obj.focus();
return false;
}else{
if (obj.value.length == 0){
return true;
}
}
if (!isMadeOf(obj.value,phonesStr)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!请填写数字,可以包含;;等分隔符号");
obj.focus();
return false;
}
}
function forEmail(obj)//判断字符是合法的电子邮件
{
if (!forString(obj)){
flag = 1;
obj.focus();
return false;
}else{
if (obj.value.length == 0){
return true;
}
}
var myReg = /^[_a-z0-9-]+@([_a-z0-9-]+\.)+[a-z0-9]{2,3}$/;
if(myReg.test(obj.value)){
return true;
}
alert("'" + obj.v_name + "'的值不正确!请确信填写正确的电子邮箱!");
flag = 1;
obj.focus();
return false;
}
function forIdCard(obj)//判断字符是否是合法的身份证
{
if (!forString(obj)){
flag = 1;
obj.focus();
return false;
}else{
if (obj.value.length == 0){
return true;
}
}
if (!isMadeOf(obj.value,numStr)){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!身份证必须填写数字!");
obj.focus();
return false;
}
if (!isRight_length(obj.value,"15") && !isRight_length(obj.value,"18")){
flag = 1;
alert("'" + obj.v_name + "'的值不正确!身份证长度不正确(15或18位数字)!");
obj.focus();
return false;
}
return true;
}
/*
function void forDate(obj1,obj2,obj2)//判断字符是合法的日期
function void forPwd(obj1,obj2)//判断字符密码,两次输入密码是否相等
function void forMadeOf(obj,str)//判断字符是否是由str里的字符组成
*/