Ajax java 实现用户名自动验证

本文介绍了一个使用Ajax实现的用户名自动验证功能。该功能包括了用户名格式验证、唯一性检查及前端实时反馈等功能,能够帮助开发者快速集成到自己的项目中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**************************************************
Ajax 实现 用户名自动验证功能
Code by 段高辉   E-mail:gaohuisoft@hotmail.com
*************************************************/
// JavaScript Document
//创建XMLHttpRequest 实例 req,并接受用户参数#########
var req = false;
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
req = false;
}
}
if (!req && typeof XMLHttpRequest != 'undefined') {
req = new XMLHttpRequest();
}

//发送请求 参数依次为 传送方式(get、post),处理网址(url),同步(true,false)
function Send( medhot, url, tb, action, msgFalse, msgTrue ){
 var medhot=medhot;
 var url=url;
 var tb=tb;
 req.open( medhot, url, tb );
 req.onreadystatechange =  function() {RequestProcessor( action, msgFalse, msgTrue )};
 if ( ! XMLHttpRequestState(req)){
  req.send();
 }else{
  //document.write("对不起,请稍等...")
 }
}

//验证xmlHttp状态是否正在请求
function XMLHttpRequestState(req){
 switch ( req.ReadyState ){
  case 1,2,3:
   return true;
   break;
  default:
   return false;
   break;
 }
}
//onreadystatechange 请求处理机制 RequestProcessor #########
function RequestProcessor( action, msgFalse, msgTrue ){
 var chk = "false";
 if ( req.ReadyState == 4 ) //等于4表示请求
  {
   //返回状态 state 等于 200 表示一切顺利
   if ( req.status == 200 ) {
    //如果responseText不为空,说明有信息返回
    var text = req.responseText;
    if ( text != "" ){ 
      if (text=="true" ){
       InnerHtml( action+"_alert", msgFalse );
       ChangeClass( action+"_alert", "chk_false");
      }else{
       InnerHtml( action+"_alert", msgTrue );
       ChangeClass( action+"_alert", "chk_true");
       chk = "true";
      }
     }else{
      InnerHtml( "user_alert", "重新选择" );
     }
   }else {
    InnerHtml( "user_alert", req.status)
    //document.write(req.status)
   }
  }
 document.getElementById( action+"_chk" ).value = chk;
  // alert( action + "---"+ chk + "-----" + document.getElementById( action+"_chk" ).value);
}

/*DIV innerHTML属性函数 ##########*/
//参数以此为  对象ID,内容
function InnerHtml( objectId, objectContent ){
 document.getElementById( objectId ).innerHTML = objectContent;
}

//修改对象class属性
function ChangeClass( objectId, classname){
 document.getElementById( objectId ).className = classname;
}
//判断字符串中是否含有中文
function   checkIsChinese(str)  
  {  
          //如果值为空,通过校验  
          //var   pattern   =   /^([/u4E00-/u9FA5]|[/uFE30-/uFFA0])*$/gi;
    var pattern = /[    /u4e00-/u9fa5]/;
          if   (pattern.test(str))  
                  return   true;  
          else  
                  return   false;
  }
 
/*字符长度
属性依次为 对象ID,要求字符长度,错误提示
*/
function ChkLength( objectId, strLength ){ 
     lengthChk=false;
 objectAlert=objectId+"_alert"
 str=document.getElementById( objectId ).value;
 if ( str.length < strLength ){
  lengthChk=true;
 }
 return lengthChk;
}
/*验证密码字符长度*/
function ChkPassword(objectId, strLength ){
 chkPassword=true;
 if ( ChkLength( objectId, strLength ) ){
  InnerHtml( objectAlert, "密码不少于6位字符" );
  chkPassword = false;
 }else{
  InnerHtml( objectAlert, "密码通过验证" );
 }
 ChangeClass( objectAlert, "chk_"+chkPassword);
 if ( document.getElementById( objectId+"2" ).value != "" )
 PasswordFlag( objectId+"2", objectId )
 return chkPassword;
}

/*密码确认*/
/*参数依次为 确认密码,密码*/
function PasswordFlag( pass2, pass){ 
    var chkPasswordFlag = true ;
 psd=document.getElementById(pass).value;
 psd2=document.getElementById(pass2).value;
 psd2Alert=pass2+"_alert"
 if (psd == psd2){
  InnerHtml( psd2Alert, "确认密码正确" );
 }else{
  InnerHtml( psd2Alert, "确认密码不正确" );
  chkPasswordFlag = false;
 }
 if ( ChkLength( pass2, 6 ) ){
  InnerHtml( psd2Alert, "密码不少于6位字符" );
  chkPasswordFlag = false;
 }

ChangeClass( psd2Alert, "chk_"+chkPasswordFlag);
 return chkPasswordFlag;
}
//是否包含指定字的验证
//参数依次为  需要验证的字符串,字符 用,隔开
function ChkChar( str, char ){
 var chk=false;
 var charArray= char.split(",");
 var charArrayUbound= charArray.length;
 for ( i=0; i<=charArrayUbound; i++ ){
  if ( str.indexOf( charArray[ i ] ) != -1 ){
   chk = true;
   break;
  }
 }
 return chk;
}
//用户名验证
function Chkuser( objectId )
{
 chkUser = true;
 user = document.getElementById( objectId ).value;
 objectAlert=objectId+"_alert";
  var reg = /^[0-9a-zA-Z]{4,20}$/;
  if ( !reg.test( user ) )
  {
   InnerHtml( objectAlert, "只能是4-20位0-9和a-z的组合区分大小写" );
   ChangeClass( objectAlert, "chk_false")
   chkUser = false;
  }
  else
  {
   InnerHtml( objectAlert, "用户名正确" );
  }
 ChangeClass( objectAlert, "chk_"+chkUser);
 return chkUser;
 
}
/*判断邮箱是否正确*/
function IsEmail( objectId ){
 var chkEmail = true ;
 var mail = document.getElementById( objectId ).value;
 objectAlert=objectId+"_alert"
    var reg = /^[0-9A-Za-z_/-]+@[0-9A-Za-z-]+(/.[a-zA-Z]+){1,}$/;
    if ( !reg.test(mail) )
    {
     InnerHtml( objectAlert, "邮箱地址格式错误" );
     chkEmail = false;
    }
    else
    {
     InnerHtml( objectAlert, "邮箱地址格式正确" )
    }
 ChangeClass(objectId+"_alert", "chk_"+chkEmail)
 return chkEmail ;
}
//邮箱验证结束
//验证码验证
function ChkImg( objectId )
{
 chkImg = true;
 img = document.getElementById( objectId ).value;
 objectAlert=objectId+"_alert";
  var reg = /^[0-9]+$/;
  if ( !reg.test( img ) )
  {
   InnerHtml( objectAlert, "只能是数字" );
   ChangeClass( objectAlert, "chk_false")
   chkImg = false;
  }
  else
  {
   InnerHtml( objectAlert, "验证码格式正确" );
  }
 ChangeClass( objectAlert, "chk_"+chkImg);
 return chkImg;
 
}
//判断用户名是否存在
function UserExist( objectId )
{
 if ( Chkuser( objectId ) ){
 user = document.getElementById( objectId ).value;
 Send( "GET", "yp.htm?ddc=check_yp&user="+user, true, objectId, "用户名已经存在", "用户名可以正常使用" );
 }
}
//判断验证码是否正确
function ChkCode( objectId )
{  
    if ( ChkImg( objectId ) ){
    var img = document.getElementById( objectId ).value;
 Send( "GET", "yp.htm?ddc=check_img&img="+img, true, objectId, "验证码不正确", "验证码正确" );
 }
}
//判断提示问题的答案是否填写;
function ChkAnswer( objectId )
{
 var chkAnswer = false;
 var objectAlert = objectId+"_alert";
 var answer = document.getElementById( objectId ).value;
 if ( ChkLength( objectId, 3 ) )
 {
  InnerHtml( objectAlert, "提示答案不小于3位字符" );
 }
 else
 { 
  if ( !ChkChar( answer, "',-,&,*" ) )
  {
   InnerHtml( objectAlert, "提示答案正确" );
   chkAnswer = true;
  }
  else
  {
   InnerHtml( objectAlert, "不能含有特殊字符/"'/",/"-/",/"&/",/"*/"" );
  }
 }
 ChangeClass( objectAlert, "chk_"+chkAnswer);
 return chkAnswer;
}
//判断公司名称是否填写
function ChkConame( objectId )
{
 var chkConame = false;
 var objectAlert = objectId+"_alert";
 var coname = document.getElementById( objectId ).value;
 if ( ChkLength( objectId, 4 ) )
 {
  InnerHtml( objectAlert, "公司名称不小于4位字符" );
 }
 else
 { 
  if ( !ChkChar( coname, "',-,&,*" ) )
  {
   InnerHtml( objectAlert, "<font clor=green>正确</font>" );
   chkConame = true;
  }
  else
  {
   InnerHtml( objectAlert, "不能含有特殊字符/"'/",/"-/",/"&/",/"*/"" );
  }
 }
 ChangeClass( objectAlert, "chk_"+chkConame);
 return chkConame;
}
//判断联系人是否为空
function ChkColxr( objectId )
{
 var chkColxr = false;
 var objectAlert = objectId+"_alert";
 var colxr = document.getElementById( objectId ).value;
 if ( ChkLength( objectId, 2 ) )
 {
  InnerHtml( objectAlert, "联系人不小于2位字符" );
 }
 else
 { 
  if ( !ChkChar( colxr, "',-,&,*" ) )
  {
   InnerHtml( objectAlert, "正确" );
   chkColxr = true;
  }
  else
  {
   InnerHtml( objectAlert, "不能含有特殊字符/"'/",/"-/",/"&/",/"*/"" );
  }
 }
 ChangeClass( objectAlert, "chk_"+chkColxr);
 return chkColxr;
}
//判断地址是否为空//
function ChkCoaddress( objectId )
{
 var chkCoaddress = false;
 var objectAlert = objectId+"_alert";
 var coaddress = document.getElementById( objectId ).value;
 if ( ChkLength( objectId, 4 ) )
 {
  InnerHtml( objectAlert, "地址不小于4位字符" );
 }
 else
 { 
  if ( !ChkChar( coaddress, "',-,&,*" ) )
  {
   InnerHtml( objectAlert, "正确" );
   chkCoaddress = true;
  }
  else
  {
   InnerHtml( objectAlert, "不能含有特殊字符/"'/",/"-/",/"&/",/"*/"" );
  }
 }
 ChangeClass( objectAlert, "chk_"+chkCoaddress);
 return chkCoaddress;
}
//判断电话是否为空//
function ChkCotel( objectId )
{
 chkCotel = true;
 cotel = document.getElementById( objectId ).value;
 objectAlert=objectId+"_alert";
  var reg = /^[0-9]+$/;
  if ( !reg.test( cotel ) )
  {
   InnerHtml( objectAlert, "电话填写不正确" );
   ChangeClass( objectAlert, "chk_false")
   chkCotel = false;
  }
  else
  {
   InnerHtml( objectAlert, "电话填写正确" );
  }
 ChangeClass( objectAlert, "chk_"+chkCotel);
 return chkCotel; 
}
//检测电话区号//
function ChkCotelq( objectId )
{
 chkCotelq = true;
 cotelq = document.getElementById( objectId ).value;
 objectAlert=objectId+"_alert";
  var reg = /^[0-9]+$/;
  if ( !reg.test( cotelq ) )
  {
   InnerHtml( objectAlert, "区号只能是数字" );
   ChangeClass( objectAlert, "chk_false")
   chkCotelq = false;
  }
  else
  {
   InnerHtml( objectAlert, "区号填写正确" );
  }
 ChangeClass( objectAlert, "chk_"+chkCotelq);
 return chkCotelq; 
}
//注册用户数据检测开始//
function ChkForm(){ 
 chkForm = true;
 if ( !Chkuser( "user" ) ){
  return chkForm = false;
 }else{ 
 if ( document.getElementById( "user_chk" ).value == "false" ){
   InnerHtml("user_alert", "用户名已经存在" );
   ChangeClass("user_alert", "chk_false");
  }else{
   InnerHtml("user_alert", "用户名可以正常使用" );
   ChangeClass("user_alert", "chk_true");
  }
 }
 if ( !ChkPassword("pass", 6 ) ){
  return chkForm = false;
 }
 if ( !PasswordFlag("pass2", "pass" ) ){
  return chkForm = false;
 }
 if ( !ChkAnswer("answer" ) ){
  return chkForm = false;
 }
 if(!ChkConame("coname")){
  return chkForm = false;
  }
 if(!ChkColxr("colxr")){
  return chkForm = false;
  }
 if(!ChkCotelq("cotelq")){
  return chkForm = false;
  }
 if(!ChkCotel("cotel")){
  return chkForm = false;
  }
  //邮件验证
 if(!IsEmail("mail")){
  return chkForm = false;
  }
 if ( !ChkCoaddress("coaddress" ) ){
  return chkForm = false;
 }
 //验证码验开始
 if ( !ChkImg( "img" ) ){
  return chkForm = false;
 }else{ 
 if ( document.getElementById( "img_chk" ).value == "false" ){
   InnerHtml("img_alert", "验证码不正确" );
   ChangeClass("img_alert", "chk_false");
   return chkForm = false;
  }else{
   InnerHtml("img_alert", "验证码正确!" );
   ChangeClass("img_alert", "chk_true");
  }
 }
 return chkForm;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值