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. es6 import export 与 node 中的module.exports exports

    1.export a.export 变量 export var name = 'jack';export var age = 18;//等同于 var name = 'jack';var age = ...

  2. typeof,GetType

    typeof: 是运算符,获得某一类型的 System.Type 对象. Int32 t = new Int32(); Type t = typeof(int); GetType: 是方法,获取当前实 ...

  3. 转:Eclipse插件开发之TreeViewer

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

  4. Spring官网下载dist.zip的几种方法

    Spring官网下载dist.zip的几种方法   Spring官网改版后,很多项目的完整zip包下载链接已经隐掉了,虽然Spring旨在引导大家用更“高大上”的maven方式来管理所依赖的jar包, ...

  5. spring cloud资料

    https://segmentfault.com/a/1190000006216281 http://git.oschina.net/zhou666/spring-cloud-7simple zuul ...

  6. 【xsy1629】可持久化序列 - 可持久化平衡树

    题意 你现在要用数据结构维护一个长度为n的序列. 这个序列支持三种操作: 1 l r:将序列中的第l项到第r项这一段翻转. 2 l r:查询序列中[l,r]这一段的和. 3 p:回到第p个历史版本. ...

  7. JAVA类与对象

    Employee类: public class EmployeeTest { public static void main(String[] args) { // fill the staff ar ...

  8. Thinkphp 3.2.2 利用phpexcel完成excel导出功能

    首先百度搜索phpexcel  包,放到项目的这个目录下 接下来  是controller里的导出代码 /**导出预定产品用户信息 * 大白驴 675835721 *2016-12-12 **/pub ...

  9. 关于display:inline-block和float:left的区别

    <div class="pag"> <a href="#">首页</a> <a href="#"& ...

  10. eclipse导入外部jar包

    首先在项目下创建一个文件夹,保存我们的jar包. 在项目名上右击,依次点击[New]-->[Floder],打开新建文件夹窗口输入文件夹名称[lib],点击[ok].我们通常在lib文件夹中存放 ...