(正则表达式)表单验证


//获取DOM对象
function e(str){
    return document.getElementById(str);
}

//动态添加有样式的内容
//ok_prompt 为提示文字验证正确的className
//error_prompt  为提示文字验证错误时className
//import_prompt  为提示文字提示时className

function appendHtml(obj,str,className){
    obj.innerHTML = str;
    obj.className = className;
}
//验证表单
function checkForm(){
//方法1:	
/*if(checkUserName()&checkPwd()&checkRepwd()&checkNickName()&checkTel()&checkEmail()){
		return true;	
	}else{
		return false;
	}*/
//方法2:
	 var ids  = ["checkUserName()","checkPwd()","checkRepwd()","checkNickName()","checkTel()","checkEmail()"];
    var sum = 0;
    for(var i = 0; i<ids.length ;i++){
        if ( eval(ids[i]) ){
			sum++;
		}
    }
    return ids.length == sum ? true : false;
	
}
//获得鼠标时触发的事件
//import_prompt  为提示文字提示时className

function focusShow(inputId,msg){
	appendHtml(e(inputId+"Id"),msg,"import_prompt");

}
//验证用户名输入1、由字母、数字、下划线、点、减号组成<br/>2、只能以数字、字母开头或结尾,且长度为4-18
function checkUserName(){
	var userName = e("userName");
	var reg=/^[a-zA-Z0-9][a-zA-Z0-9\-\._]{2,16}[a-zA-Z0-9]$/;
	if(userName.value==""){
		appendHtml(e("userNameId"),"用户名不能为空!","error_prompt");
		
		//在文本域中设置焦点
		userName.focus();
		
		return false;
		
	}else if(userName.value.match(reg)==null){
		appendHtml(e("userNameId"),"请输入正确的通行证用户名!","error_prompt");
		
		//选取文本域中的内容:
		userName.select();
		
		return false;
		
	}else{
		appendHtml(e("userNameId"),"输入正确!","ok_prompt");
		return true;
	}  
}

//验证密码
function checkPwd(){
   var pwd= e("pwd");
	if(pwd.value==""){
		appendHtml(e("pwdId"),"登录密码不能为空!","error_prompt");
		return false;
	}else if(pwd.value.length<6||pwd.value.length>16){
		appendHtml(e("pwdId"),"密码长度必须为6到16字符!","error_prompt");
		return false;
	}else{
		appendHtml(e("pwdId"),"输入正确!","ok_prompt");
		return true;
	}   
}
//验证重复密码
function checkRepwd(){
	var pwd=e("pwd");
	var repwd=e("repwd");
	var repwdId=e("repwdId");
	if(repwd.value!==pwd.value){
		appendHtml(repwdId,"两次输入的密码不一致!","error_prompt");
		return false
	}else if(repwd.value==""){
		appendHtml(repwdId,"确认密码不能为空!","error_prompt");
		return false;
	}else{
		return true;
	}
}

//验证昵称
function checkNickName(){
	var nickName=e("nickName");	
	var nickNameId=e("nickNameId");
	var reg=/^([\u4e00-\u9fa5]|\w|[!@#$%*])+$/;
	var len=nickName.value.replace(/[\u4e00-\u9fa5]/g,"ab").length;
	if(nickName.value==""){
		appendHtml(nickNameId,"昵称不能为空!","error_prompt");	
		return false;
	}else if(nickName.value.match(reg)==null){
	//如果js中match函数方法没有找到匹配,返回 null。如果找到匹配返回一个数组并且更新全局 RegExp 对象的属性以反映匹配结果。
		appendHtml(nickNameId,"只能由汉字、字母、数字、下划线以及@!#$%&*特殊字符组成!","error_prompt");	
		return false;
	}else if(len<4||len>16){
		appendHtml(nickNameId,"昵称为4-16个字符","error_prompt");
		return false;
	}else{
		appendHtml(nickNameId,"输入正确!","ok_prompt");
		return true;
	}
	
}

//验证手机
function checkTel(){
	var odom=e("tel");
	var omsg=e("telId");
	var reg=/^(13|15|18)\d{9}$/;
	if(odom.value==""){
		appendHtml(omsg,"关联手机号不能为空!","error_prompt");	
		return false;
	}else if(odom.value.match(reg)==null){
		appendHtml(omsg,"关联手机号码输入不正确,请重新输入!","error_prompt");	
		return false;
	}else{
		appendHtml(omsg,"输入正确","ok_prompt");	
		return true;
	}
}
//验证邮箱
function checkEmail(){
     var odom=e("email");
	 var omsg=e("emailId");
	 var reg=/^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/
	 if(odom.value==""){
		appendHtml(omsg,"保密邮箱不能为空!","error_prompt");	
		return false;
	}else if(odom.value.match(reg)==null){
		appendHtml(omsg,"保密邮箱格式不正确,请重新输入!","error_prompt");	
		return false;
	}else{
		appendHtml(omsg,"输入正确","ok_prompt");	
		return true;
	}
}

 
 

猜你喜欢

转载自4636.iteye.com/blog/2323783
今日推荐