*******************************************
*
*
格式
null 是否为空判断
num 数字
ab 字母
chs 汉字
bit 位数
phone 电话格式
email 电子邮件格式
http 格式
*/
function check_null(check_obj){
var str = '''';
for(i = 0; i < check_obj.length; i++) {
str = str + '' '';
}
return (str == check_obj);
}
function check_num(check_obj){
var i,j,strTemp;
//abcdefghijklmnopqrstuvwxyz
strTemp="0123456789";
if ( check_obj.length== 0)
return false;
for (i=0;i{
j=strTemp.indexOf(check_obj.charAt(i));
if (j==-1)
{
return false;
}
}
return true;
}
function check_ab(check_obj){
var i,j,strTemp;
strTemp="abcdefghijklmnopqrstuvwxyz";
if ( check_obj.length== 0)
return false;
for (i=0;i{
j=strTemp.indexOf(check_obj.charAt(i));
if (j==-1)
{
return false;
}
}
return true;
}
function check_chs(check_obj){
if(check_obj.search(/[^\x00-\x80]/)>=0){
return true;
}else{
return false;
}
}
function check_bit(check_obj,bit_obj){
arry_str = bit_obj.split(''_'');
var obj_length = check_obj.length;
switch(arry_str[2]){
case ">":
if(obj_length>arry_str[1]){
return true;
}
break;
case "<":
if(obj_lengthreturn true;
}
break;
case ">=":
if(obj_length>=arry_str[1]){
return true;
}
break;
case "<=":
if(obj_length<=arry_str[1]){
return true;
}
break;
}
return false;
}
function check_phone(check_obj){
if(check_obj.search(/[0-9]{4}\-[0-9]*/)>=0){
return true;
}else{
return false;
}
}
function check_email(check_obj){
if(check_obj.search(/^[\w-]+@[\w-]+\.[A-Za-z0-9]{2,}$/)>=0){
return true;
}else{
return false;
}
}
function check_http(check_obj){
if(check_obj.search(/^https?:\/\/((\w|-)+\.)+\w+\/?$/i)>=0){
return true;
}else{
return false;
}
}
/*************************************************
* 函数用途:自动检测表单
* 参数:form_name 要提交的form对象名字
* input_arry 要检测input控件对象组
* input_arry参数数组的第一个位置是
* 控件的名字,第二个位置是如果出错
* 要显示的错误信息字符串,第三个位
* 置是检测范围标志,如果多标志可以
* 用,分开。例如''num,null''不能空,
* 并且只能为数字
*/
function auto_check_form(form_name,input_arry){
for(var num in input_arry){
alert(''ok'');
alert_flag=0;
arry_str = input_arry[num][2].split('','');
for(var es_num in arry_str){
switch(arry_str[es_num]){
case "null":
if(check_null(input_arry[num][0].value)==true){
alert_flag=1;
}
break;
case "num":
if(check_num(input_arry[num][0].value)==false){
alert_flag=1;
}
break
case "ab":
if(check_ab(input_arry[num][0].value)==false){
alert_flag=1;
}
break;
case "chs":
if(check_chs(input_arry[num][0].value)==false){
alert_flag=1;
}
break;
case "phone":
if(check_phone(input_arry[num][0].value)==false){
alert_flag=1;
}
break;
case "email":
if(check_email(input_arry[num][0].value)==false){
alert_flag=1;
}
break;
case "http":
if(check_http(input_arry[num][0].value)==false){
alert_flag=1;
}
break;
default:
}
if(arry_str[es_num].search(/bit_*/)>=0){
if(check_bit(input_arry[num][0].value,arry_str[es_num])==false){
alert_flag=1;
}
}
}
if(alert_flag==1){
alert(input_arry[num][1]);
return 0;
}
}
form_name.submit();
}
注:checkspace函数是检测是否为空
html方调用通过数组和控件对象名字,对比模式的方式来得到更多的判断支持,比如第2个参数中数组的第3个参数可以这样写:
onclick=“auto_check_form(test1,
[
[text_1,''不能空并且只能是数字'',''null,num''],
[text_2,''不能为空只能为字母'',''null,ab''],
[text_3,''不能小于9位'',''null,num,bit_9_>''],
[text_4,''电话号码输入错误'',''null,phone,bit_13_<=''],
[text_5,''请输入汉字做名字'',''null,chs,bit_6_>'']
]);">“
null,phone,bit_13_<=这些都是匹配符