window.onload = function(){

// 获取input标签
var alInput = document.getElementsByTagName("input");
var oName = alInput[0];
var pwd = alInput[1];
var pwd2 = alInput[2];

// 获取p标签
var alMeg = document.getElementsByTagName("p");
var oName_alMeg = alMeg[0];
var pwd_alMeg = alMeg[1];
var pwd2_alMeg = alMeg[2];

// 获取ul, li标签
var alul = document.getElementById("ul");
var alLi = document.getElementsByTagName("li");
var li1 = alLi[0];
var li2 = alLi[1];
var li3 = alLi[2];

var re = /[^\w\u4e00-\u9fa5]/g;//用户名允许出现W(字母、数字、下划线)和汉字
var re_n = /[^\d]/g;//不是数字
var re_a = /[^a-zA-Z]/g;//不是字母
var count = document.getElementById("iCount");
var nameLength = 0;
var temp = 0;
var num = 0;

// 统计输入字符数,\x00-xff的意思为单字节,统计不是单字节,并转化为双字节
function getLength(str){
return str.replace(/[^\x00-xff]/g,"xx").length;
}
// 字符比对方法,用于后续程序判断是否输入相同字符
function strCompare(str,n){
for (var i = 0; i < str.length; i++) {
if (str.charAt(i) == n) {
temp++;
}
}
return temp;
}

// 鼠标聚焦
oName.onfocus = function(){
oName_alMeg.style.visibility = "visible";
}

// 抬起键盘,也就是输入了一个字
oName.onkeyup = function(){
count.style.visibility = "visible";
nameLength = getLength(this.value);
count.innerHTML = nameLength+"个字符";
if (nameLength == 0) {
count.style.visibility = "hidden";
}
}

//当失去焦点
oName.onblur = function(){
count.style.visibility = "hidden";
// 含有非法字符
var re = /[^\w\u4e00-\u9fa5]/g; //正则表达式,判断是否含有非法字符
if (re.test(this.value)) {
oName_alMeg.innerHTML = "错误,含有非法字符";
}
// 不能为空
else if (nameLength == 0) {
oName_alMeg.innerHTML = "错误,用户名不能为空";
}
// 长度超过25个字符
else if (nameLength > 25) {
oName_alMeg.innerHTML = "错误,用户名不能超过25个字符";
}
// 长度少于6个字符
else if (nameLength < 6) {
oName_alMeg.innerHTML = "错误,用户名不能低于6个字符";
}
else{
oName_alMeg.innerHTML = "正确,用户名输入成功";
}
}

//密码框验证
pwd.onfocus = function(){
pwd_alMeg.style.visibility = "visible";
alul.style.visibility = "visible";
li1.style.background = 'red';
}
pwd.onkeyup = function(){
if (this.value.length > 0) {
pwd2.removeAttribute('disabled');//设置确认密码框能输入
pwd2_alMeg.style.visibility = "visible";
} else {
pwd2.setAttribute("disabled","disabled");//设置确认密码框不能输入
}
// 大于5个字符
if (this.value.length > 5) {
li2.style.background = 'red';
} else{
li2.style.background = 'orange';
};

// 大于10个字符
if (this.value.length > 10) {
li3.style.background = 'red';
} else{
li3.style.background = 'orange';
};

}
pwd.onblur = function(){
var j = strCompare(this.value,this.value[0]);
// 不能为空
if (this.value.length == 0) {
pwd_alMeg.innerHTML = "密码不能为空";
}

// 不能用相同字符
else if(j == this.value.length) {
pwd_alMeg.innerHTML = "错误,不能用相同字符";
}

// 长度应为6-16个字符
else if(this.value.length < 6 || this.value.length > 16) {
pwd_alMeg.innerHTML = "错误,密码长度应为6-16个字符";
}

// 不能全为数字 var re_n = /[^\d]/g;没有数字,非一下就是全为数字
else if (!re_n.test(this.value)) {
pwd_alMeg.innerHTML = "错误,密码不能全为数字";
}

// 不能全为字母
else if (!re_a.test(this.value)) {
pwd_alMeg.innerHTML = "错误,密码不能全为字母";
}
// OK
else{
pwd_alMeg.innerHTML = "OK";
}

}

// 确认密码框
pwd2.onblur = function(){
if (this.value != pwd.value) {
pwd2_alMeg.innerHTML = "两次输入密码不一致";
}else{
pwd2_alMeg.innerHTML = "成功";
}

}
}

JS实现登陆验证的主要代码及思路的更多相关文章

  1. JS表单验证类HTML代码实例

    以前用的比较多的一个JS表单验证类,对于个人来说已经够用了,有兴趣的可以在此基础上扩展成ajax版本.本表单验证类囊括了密码验证.英文4~10个 字符验证. 中文非空验证.大于10小于100的数字.浮 ...

  2. 2017.11.9 如何利用JS做登陆验证界面

    ()案例----JavaScript实现输入验证 需要验证的表单输入域和要求 用户名不能为空,是否符合规定的格式 密码长度是否超过6,两次密码输入一致 邮箱地址:邮箱地址必须符合邮箱形式 ~~~注意提 ...

  3. springaop实现登陆验证

    1.首先配置好springmvc和springaop 2.先写好登陆方法,通过注解写代理方法 通过代理获得登陆方法的参数方法名,然后再aop代理方法内进行登陆验证 贴出代码 package com.h ...

  4. java登陆验证码与JS无刷新验证

    最近公司的项目的登陆模块由我负责,所以就做了个登陆小功能进行练手,其包括了用jQuery对用户名和密码进行不为null验证,和出于安全性考虑加了一个验证码的校验 别的不说先上代码 controller ...

  5. js 表单验证控制代码大全

    js表单验证控制代码大全 关键字:js验证表单大全,用JS控制表单提交 ,javascript提交表单:目录:1:js 字符串长度限制.判断字符长度 .js限制输入.限制不能输入.textarea 长 ...

  6. angularjs中$http、$location、$watch及双向数据绑定学习实现简单登陆验证

    使用$http.$location.$watch及双向数据绑定等实现简单的用户登陆验证,记录备忘: 1.$http模拟从后台获取json格式的数据: 2.$watch实时监控数据变化: 3.$loca ...

  7. js判断登陆用户名及密码是否为空的简单实例

    js判断登陆用户名及密码是否为空的简单实例 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <script type="text/javascript ...

  8. 【Java EE 学习 70 上】【数据采集系统第二天】【数据加密处理】【登陆验证】【登陆拦截器】【新建调查】【查询调查】

    一.数据加密处理 这里使用MD5加密处理,使用java中自带加密工具类MessageDigest. 该类有一个方法digest,该方法输入参数是一个字符串返回值是一个长度为16的字节数组.最关键的是需 ...

  9. jquery.validate.js表单验证

    一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...

随机推荐

  1. 启动windows bat文件出现错误,直接关闭

    如果执行运行run.bat,提示错误直接退出后,可以直接使用cmd命令进入当前目录,运行,会显示错误信息.

  2. 关于HTML5你必须知道的28个新特性,新技巧以及新技术

    1. 新的Doctype 尽管使用<!DOCTYPE html>,即使浏览器不懂这句话也会按照标准模式去渲染 2. Figure元素 用<figure>和<figcapt ...

  3. python & c

    http://www.ibm.com/developerworks/cn/linux/l-cn-pythonandc/

  4. Tableau(数据抽取)

    如果启用的是标准的企业数据库,TABLEAU中做实时分析会比较困难,例如以下情况:(1)不在办公室,无法连接到数据库:(2)在Microsoft SQL Server或者Oracle,在数据库很大或者 ...

  5. JavaScript实现输入验证(简单的用户注册)

    1.先写用户注册页面userrAdd.jsp <body> <center> <form name="f1" id="f1" ac ...

  6. [转载] Jenkins入门总结

    转载自http://www.cnblogs.com/itech/archive/2011/11/23/2260009.html 在网上貌似没有找到Jenkins的中文的太多的文档,有的都是关于Huds ...

  7. 通过a标签在页面上显示视频网站中的视频

    1.把视频传到优酷.腾讯等视频网站中 <!DOCTYPE html> <html> <head lang="en"> <meta char ...

  8. div模拟table,可实现左右高度同增长(html布局)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Oracle TnsName问题记录

    在多次oracle服务器搭建过程中,经常遇到tnsname不正确的情况1.安装了client 这个时候XX/client/network/admin/中也有一个tnsname,而且在环境变量中,系统是 ...

  10. python 汇总

    TypeError: ReadExcelList() takes exactly 1 argument (2 given) 传入的参数有问题