2.页面参数校验
2.1字符判断
对页面元素进行字符型判断,由页面得到的元素值都是字符型的,直接使用”= =”来判断字符是否相等
2.2日期判断
对页面进行日期的判断首先要对页面的字符数值进行日期的转换
日期输入一般为:YYYYMMDD
方法:
function checkDate(objname){
var tempname = objname;
var datename = document.getElementById(tempname);
if(datename.value.length != 8){
alert("输入日期格式不正确,请按照'YYYYMMDD'的格式输入");
return false;
}
var y,m,d;
y = datename.value.substring(0,4);
m = datename.value.substring(4,6);
d = datename.value.substring(6,8);
if(datename.value != ""){
if(!CheckDateMain(y,m,d)){
alert("输入日期格式不正确,请按照'YYYYMMDD'的格式输入");
datename.value = "";
datename.focus();
}
}
}
function CheckDateMain(year,month,day){
if(!CheckNumberMain(year)){
return false;
}
if(!CheckNumberMain(month)){
return false;
}
if(!CheckNumberMain(day)){
return false;
}
var dat = new Date(year - 1900, month - 1, day);
if (dat.getMonth() == (month-1)) {
return true;
} else {
return false;
}
}
2.3数值判断
对输入值进行整数型,浮点型,数字判断:
方法:
function CheckFloatMain(str){
var rc=true;
oneDecimal=false;
if (str+"" == "undefined" || str == null){
rc=false;
} else{
for(i=0;i<str.length;i++){
ch=str.charAt(i);
if(i==0 && ch=='-'){
continue;
}
if(ch=="." && !oneDecimal){
oneDecimal=true;
continue;
}
if ((ch< "0") || (ch >'9')){
rc=false;
break;
}
}
}
return rc;
}
function CheckNumberMain(str){
var rc=true;
if (str+"" == "undefined" || str == null){
rc=false;
} else if(str.length==0){
rc=false;
} else {
for(i=0;i<str.length;i++){
if(str.charAt(i)<'0' || str.charAt(i)>'9'){
rc=false;
break;
}
}
}
return rc;
}
function CheckIntegerMain(str){
var rc=true;
if (str+"" == "undefined" || str == null){
rc=false;
} else{
for(i=0;i<str.length;i++){
if(i==0 && str.charAt(i)=='-'){
continue;
}
if(str.charAt(i)<'0' || str.charAt(i)>'9'){
rc=false;
break;
}
}
}
return rc;
}
注意:在进行整数型,浮点型比较大小时都需要进行相应的转换,调用方法parseFloat()或parseInt()来转换
2.4特殊格式转换
去除货币的逗号分割,方法:通过调用replace方法将逗号替换成非空格,例:
pn = primaryInsuredNumber.value.replace(',','');
E_Mail格式校验,方法:
function CheckEmailMain(str){
var CHAR_LETTER_NUMERIC=1;
var CHAR_UNDERLINE=2;
var CHAR_DOT=3;
var CHAR_AT=4;
var CHAR_DIVIDE=5;
var CHAR_END=6;
var CHAR_OTHER=7;
var DIV_CHAR=',';
var rc=true;
if (str+"" == "undefined" || str == null){
rc=false;
return rc;
} else if(str.length==0){
rc=true;
return rc;
}
var exit_flag=false;
var total_char=str.length;
var pos=0;
var cur_char;
var cur_status=0;
while((pos<=total_char) && (!exit_flag)){
if(pos==total_char){
cur_char=CHAR_END;
}
else if (str.charAt(pos)=='.'){
cur_char=CHAR_DOT;
}
else if (str.charAt(pos)==DIV_CHAR){
cur_char=CHAR_DIVIDE;
}
else if(str.charAt(pos)=='_'){
cur_char=CHAR_UNDERLINE;
}
else if(str.charAt(pos)=='@'){
cur_char=CHAR_AT;
}
else if(((str.charAt(pos)>='a')&&(str.charAt(pos)<='z'))||((str.charAt(pos)>='A')&&(str.charAt(pos)<='Z'))||((str.charAt(pos)>='0')&&(str.charAt(pos)<='9'))||(str.charAt(pos)=='-')){
cur_char=CHAR_LETTER_NUMERIC;
}
else{
cur_char=CHAR_OTHER;
}
switch (cur_status){
case -1://error
rc=false;
exit_flag=true;
break;
case 0://initial status
if((cur_char==CHAR_LETTER_NUMERIC)||(cur_char==CHAR_UNDERLINE)||(cur_char==CHAR_DOT)){
cur_status=1;
}
else{
rc=false;
cur_status=-1;
}
break;
case 1://user name
if((cur_char==CHAR_LETTER_NUMERIC)||(cur_char==CHAR_UNDERLINE)||(cur_char==CHAR_DOT)){
cur_status=1;
}
else if(cur_char==CHAR_AT){
cur_status=2;
}
else{
rc=false;
cur_status=-1;
}
break;
case 2://@
if(cur_char==CHAR_LETTER_NUMERIC){
cur_status=6;
}
else{
rc=false;
cur_status=-1;
}
break;
case 6://"."
if(cur_char==CHAR_LETTER_NUMERIC){
cur_status=6;
}
else if(cur_char==CHAR_DOT){
cur_status=3;
}
else{
rc=false;
cur_status=-1;
}
break;
case 3://fisrt domain name
if(cur_char==CHAR_LETTER_NUMERIC){
cur_status=4;
}
else{
rc=false;
cur_status=-1;
}
break;
case 4://not first domain name
if(cur_char==CHAR_LETTER_NUMERIC){
cur_status=4;
}
else if(cur_char==CHAR_DOT){
cur_status=3;
}
else if(cur_char==CHAR_DIVIDE){
cur_status=0;
}
else if(cur_char==CHAR_END){
cur_status=5;
}
else{
rc=false;
cur_status=-1;
}
break;
case 5://ok
rc=true;
exit_flag=true;
break;
default:
rc=false;
exit_flag=true;
break;
}
pos++;
}
return rc;
}
使用正则表达式更为方便