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. Mac系统下配置Tomcat

    1.下载Tomcat,网址:http://tomcat.apache.org/download-70.cgi: 2.进入终端Terminal,打开配置文件.bash_profile,输入open .b ...

  2. Strus2学习:基础(一)

    Strus2基础: Sturs2起源以及背景: 在起源很早(2002年左右)的 strus1 和 webWork 基础上进行扩展,并且兼容这两大框架!总之很好用啦,随着学习的深入,应该会有更好的诠释的 ...

  3. Execl 使用技巧

    1. =COUNTIF(C:C;"*OS7*")   某一列中包含OS7的数量总数138

  4. linux cat 命令详解

    linux cat 命令详解 http://linux.chinaunix.net/techdoc/system/2007/11/16/972467.shtml adb shell su //这个不一 ...

  5. 转:Eclipse插件开发之TreeViewer

    http://www.tuicool.com/articles/e6fmE3R contentprovider在插件开发和RCP(Rich Client Platform)开发中常常被用到,譬如你要创 ...

  6. 线性表-双向链表(LinkedList)

    双向链表:如图1-3 所示,会把当前header拆分开,重新插入一个Entry<E>. LinkedList源码 0.首先这个类中的两个变量 private transient Entry ...

  7. Java界面

    JFrame.java package myProject; import java.awt.Color;import java.awt.EventQueue; import javax.swing. ...

  8. linux笔记:linux服务管理

    linux服务的分类: 启动和自启动: 查询已经安装的服务: RPM包的默认安装路径: 独立服务的启动: 独立服务的自启动: 基于xinetd的服务的管理: xinetd服务的自启动: 源码包安装服务 ...

  9. (45) Manifest文件

    这个是一模块主要描述和设置的文件,下面进行讲解一下{    'name': "A Module",    'version': '1.0',    'depends': ['bas ...

  10. js中this的使用

    this是Javascript语言的一个关键字. 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如, function test(){ this.x = 1; } 随着函数使用场合的 ...