例子:
example 1:要求檢驗輸入框text1的輸入資料是否是“整型”資料,若不是,則提示
if (!LogicalValue(´text1´,´integer´)) alert(´Error: Your must input a integer number´);
example 2:要求檢驗輸入框text1的輸入資料是否是“正整型”資料,若不是,則提示
if (!LogicalValue(´text1´,´integer´,´+´)) alert(´Error: Your must input a positive integer number´);
example 3:要求檢驗輸入框text1的輸入資料是否是“負整型”資料,若不是,則提示
if (!LogicalValue(´text1´,´integer´,´-´)) alert(´Error: Your must input a negative integer number´);
exmaple 4:要求檢驗輸入框text1的輸入資料是否是數值,若不是,則提示
if (!LogicalValue(´text1´,´number´)) alert(´Error: Your must input a number´);
exmaple 5:要求檢驗輸入框text1的輸入資料是否是“正”數值,若不是,則提示
if (!LogicalValue(´text1´,´number´,´+´)) alert(´Error: Your must input a number´);
exmaple 6:要求檢驗輸入框text1的輸入資料是否是“負”數值,若不是,則提示
if (!LogicalValue(´text1´,´number´,´-´)) alert(´Error: Your must input a number´);
example 7:要求檢驗輸入框text1的輸入資料是否是日期型,若不是,則提示
if (!LogicalValue(´text1´,´date´)) alert(´Error: Your must input a logical date value´);
若它的分隔字元為A,“A”是一個變數,如常用的´-´和´/´,則用如下文法
if (!LogicalValue(´text1´,´date´,A)) alert(´Error: Your must input a logical date value´);
或當分隔字元為´/´時
if (!LogicalValue(´text1´,´date´,´/´)) alert(´Error: Your must input a logical date value´);
當分隔字元為´-´時,可不要參數´-´,可帶上
example 8:要求檢驗輸入框text1的輸入表示顏色的字串是否合理,若不合理,則提示
if (!LogicalValue(´text1´,´string´,´0123456789ABCDEFabcdef´)) alert(´Error: Your must input a logical color value´);
example 9:要求檢驗輸入框text1的輸入表示密碼的字串是否不含“´"@#$%&^*”這些字元,若含有,則提示
if (!LogicalValue(´text1´,´string´,´´"@#$%&^*´,false)) alert(´Error: Your password can not contain ´"@#$%&^*´);
其中false表示不包含有某些字元,true表示必須是哪些字元,預設值為true
*/
function LogicalValue(ObjStr,ObjType)
{
var str=´´;
if ((ObjStr==null) || (ObjStr==´´) || ObjType==null)
{
alert(´函數LogicalValue缺少參數´);
return false;
}
var obj = document.all(ObjStr);
if (obj.value==´´) return false;
for (var i=2;i{
if (str!=´´)
str += ´,´;
str += ´arguments[´+i+´]´;
}
str=(str==´´?´obj.value´:´obj.value,´+str);
var temp=ObjType.toLowerCase();
if (temp==´integer´)
{
return eval(´IsInteger(´+str+´)´);
}
else if (temp==´number´)
{
return eval(´IsNumber(´+str+´)´);
}
else if (temp==´string´)
{
return eval(´SpecialString(´+str+´)´);
}
else if (temp==´date´)
{
return eval(´IsDate(´+str+´)´);
}
else
{
alert(´"´+temp+´"類型在現在版本中未提供´);
return false;
}
}
/**
IsInteger: 用於判斷一個數字型字串是否為整形,
還可判斷是否是正整數或負整數,傳回值為true或false
string: 需要判斷的字串
sign: 若要判斷是正負數是使用,是正用´+´,負´-´,不用則表示不作判斷
Author: PPDJ
sample:
var a = ´123´;
if (IsInteger(a))
{
alert(´a is a integer´);
}
if (IsInteger(a,´+´))
{
alert(a is a positive integer);
}
if (IsInteger(a,´-´))
{
alert(´a is a negative integer´);
}
*/
function IsInteger(string ,sign)
{
var integer;
if ((sign!=null) && (sign!=´-´) && (sign!=´+´))
{
alert(´IsInter(string,sign)的參數出錯: sign為null或"-"或"+"´);
return false;
}
integer = parseInt(string);
if (isNaN(integer))
{
return false;
}
else if (integer.toString().length==string.length)
{
if ((sign==null) || (sign==´-´ && integer<0) || (sign==´+´ && integer>0))
{
return true;
}
else
return false;
}
else
return false;
}
Author: PPDJ
sample:
var date = ´1999-1-2´;
if (IsDate(date))
{
alert(´You see, the default separator is "-");
}
date = ´1999/1/2";
if (IsDate(date,´/´))
{
alert(´The date´s separator is "/");
}
*/
function IsDate(DateString , Dilimeter)
{
if (DateString==null) return false;
if (Dilimeter==´´ || Dilimeter==null)
Dilimeter = ´-´;
var tempy=´´;
var tempm=´´;
var tempd=´´;
var tempArray;
if (DateString.length<8 && DateString.length>10)
return false;
tempArray = DateString.split(Dilimeter);
if (tempArray.length!=3)
return false;
if (tempArray[0].length==4)
{
tempy = tempArray[0];
tempd = tempArray[2];
}
else
{
tempy = tempArray[2];
tempd = tempArray[1];
}
tempm = tempArray[1];
var tDateString = tempy + ´/´+tempm + ´/´+tempd+´ 8:0:0´;//加八小時是因為我們處於東八區
var tempDate = new Date(tDateString);
if (isNaN(tempDate))
return false;
if (((tempDate.getUTCFullYear()).toString()==tempy) && (tempDate.getMonth()==parseInt(tempm)-1) && (tempDate.getDate()==parseInt(tempd)))
{
return true;
}
else
{
return false;
}
}
/**
IsNumber: 用於判斷一個數字型字串是否為數值型,
還可判斷是否是正數或負數,傳回值為true或false
string: 需要判斷的字串
sign: 若要判斷是正負數是使用,是正用´+´,負´-´,不用則表示不作判斷
Author: PPDJ
sample:
var a = ´123´;
if (IsNumber(a))
{
alert(´a is a number´);
}
if (IsNumber(a,´+´))
{
alert(a is a positive number);
}
if (IsNumber(a,´-´))
{
alert(´a is a negative number´);
}
*/
function IsNumber(string,sign)
{
var number;
if (string==null) return false;
if ((sign!=null) && (sign!=´-´) && (sign!=´+´))
{
alert(´IsNumber(string,sign)的參數出錯: sign為null或"-"或"+"´);
return false;
}
number = new Number(string);
if (isNaN(number))
{
return false;
}
else if ((sign==null) || (sign==´-´ && number<0) || (sign==´+´ && number>0))
{
return true;
}
else
return false;
}
Author: PPDJ
sample1:
var str = ´123G´;
if (SpecialString(str,´1234567890´))
{
alert(´Yes, All the letter of the string in ´1234567890´´);
}
else
{
alert(´No, one or more letters of the string not in ´1234567890´´);
}
結果執行的是else部分
sample2:
var password = ´1234´;
if (!SpecialString(password,´´"@#$%´,false))
{
alert(´Yes, The password is correct.´);
}
else
{
alert(´No, The password is contain one or more letters of ´"@#$%´´);
}
結果執行的是else部分
*/
function SpecialString(string,compare,BelongOrNot)
{
if ((string==null) || (compare==null) || ((BelongOrNot!=null) && (BelongOrNot!=true) && (BelongOrNot!=false)))
{
alert(´function SpecialString(string,compare,BelongOrNot)參數錯誤´);
return false;
}
if (BelongOrNot==null || BelongOrNot==true)
{
for (var i=0;i{
if (compare.indexOf(string.charAt(i))==-1)
return false
}
return true;
}
else
{
for (var i=0;i{
if (compare.indexOf(string.charAt(i))!=-1)
return false
}
return true;
}
}