密码强度应用(js)

简介:   密码强度:         $(function(){            //开始的时候隐藏                $('#tips').hide();        });        //验证密码强度            window.
 <!-- 密码强度div -->
<div id="tips" class="help-block">
  <b class="fl">密码强度:</b><span></span><span></span><span></span>
</div>
<script type="text/javascript">
        $(function(){
            //开始的时候隐藏
                $('#tips').hide();
        });
    
    //验证密码强度
            window.onload = function() {
                //var oTips = document.getElementById("tips");
                var oTips = $('#tips').get(0);
                //var oInput = document.getElementsByTagName("input")[0];
                var oInput = $('#password').get(0);
                var aSpan = oTips.getElementsByTagName("span");
                //var aSpan = $("#tips span");
                //alert(aSpan);
                var aStr = ["弱", "中", "强", "非常好"];
                var i = 0;
                
                

                oInput.onkeyup = oInput.onfocus = oInput.onblur = function() {
                    var index = checkStrong(this.value);
                    //this.className = index ? "correct" : "error";
                    oTips.className = "s" + index;
                    for ( i = 0; i < aSpan.length; i++)
                        aSpan[i].className = aSpan[i].innerHTML = "";
                        
                    if(index==3){
                        index && (aSpan[index - 1].className = "active", aSpan[index - 1].innerHTML = aStr[index - 1]);
                        index && (aSpan[index - 2].className = "active", aSpan[index - 2].innerHTML = aStr[index - 2]);
                        index && (aSpan[index - 3].className = "active", aSpan[index - 3].innerHTML = aStr[index - 3]);
                    }else if(index==2){
                        index && (aSpan[index - 1].className = "active", aSpan[index - 1].innerHTML = aStr[index - 1]);
                        index && (aSpan[index - 2].className = "active", aSpan[index - 2].innerHTML = aStr[index - 2]);
                    }else if(index==1){
                        index && (aSpan[index - 1].className = "active", aSpan[index - 1].innerHTML = aStr[index - 1]);
                    }
                    
                    if($('#tips').parent().parent().hasClass('error')){
                        $('#tips').hide();
                    }else if($('#password').val().length>=6){
                        $('#tips').show();
                    }
                        
                };
            };
            /** 强度规则
             + ------------------------------------------------------- +
             1) 任何少于6个字符的组合,弱;任何字符数的同类字符组合,弱;
             2) 任何字符数的两类字符组合,中;
             3) 12位字符数以下的三类或四类字符组合,强;
             4) 12位字符数以上的三类或四类字符组合,非常好。
             + ------------------------------------------------------- +
             **/
            //检测密码强度
            function checkStrong(sValue) {
                var modes = 0;
                if (sValue.length < 6)
                    return modes;
                
                //数字
                if (/\d/.test(sValue))
                    modes++;

                //字母
                if(/[a-zA-Z]/.test(sValue))
                    modes++;
                
                //特殊字符
                if (/\W/.test(sValue))
                    modes++;
                
                switch (modes) {
                    case 1:
                        return 1;
                        break;
                    case 2:
                        return 2;
                        break;
                    case 3:
                        return 3;
                        break;
                }
            }
        </script>

 

目录
相关文章
|
13天前
|
JavaScript 前端开发 API
详解队列在前端的应用,深剖JS中的事件循环Eventloop,再了解微任务和宏任务
该文章详细讲解了队列数据结构在前端开发中的应用,并深入探讨了JavaScript的事件循环机制,区分了宏任务和微任务的执行顺序及其对前端性能的影响。
|
14天前
|
JavaScript 开发者
深入理解Node.js事件循环及其在后端开发中的应用
【8月更文挑战第57天】本文将带你走进Node.js的事件循环机制,通过浅显易懂的语言和实例代码,揭示其背后的工作原理。我们将一起探索如何高效利用事件循环进行异步编程,提升后端应用的性能和响应速度。无论你是Node.js新手还是有一定经验的开发者,这篇文章都能给你带来新的启发和思考。
|
14天前
|
自然语言处理 JavaScript 前端开发
JS中this的应用场景,再了解下apply、call和bind!
该文章深入探讨了JavaScript中`this`关键字的多种应用场景,并详细解释了`apply`、`call`和`bind`这三个函数方法的使用技巧和差异。
|
19天前
|
自然语言处理 前端开发 JavaScript
探索JavaScript中的闭包及其实际应用
本文深入探讨了JavaScript中闭包的概念、特性及其在实际项目中的应用。通过具体示例,详细讲解了闭包的创建方法和用途,揭示了闭包在数据保护和模块化开发中的重要性。同时,还讨论了闭包可能带来的内存管理问题及优化策略,为前端开发者提供了全面的闭包知识和实践指导。
|
2天前
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
|
28天前
|
自然语言处理 JavaScript 前端开发
探索JavaScript中的闭包:从基础概念到实际应用
本文深入探讨了JavaScript中闭包的概念,从定义、作用域链和实际应用等方面进行了详细阐述。通过生动的比喻和实例代码,帮助读者理解闭包在函数执行上下文中的重要性,以及如何在实际开发中有效利用闭包解决复杂问题。同时,文章也指出了过度使用闭包可能导致的潜在问题,并给出了相应的优化建议。
|
1月前
|
JavaScript API 数据库
深入理解Node.js事件循环及其在后端开发中的应用
【9月更文挑战第3天】本文将深入浅出地介绍Node.js的事件循环机制,探讨其非阻塞I/O模型和如何在后端开发中利用这一特性来处理高并发请求。通过实际的代码示例,我们将看到如何有效地使用异步操作来优化应用性能。文章旨在为读者揭示Node.js在后端开发中的核心优势和应用场景,帮助开发者更好地理解和运用事件循环来构建高性能的后端服务。
|
14天前
|
JavaScript 前端开发 开发者
深入浅出 Vue.js:构建响应式前端应用
Vue.js 是一个流行的前端框架,以其简洁、高效和易学著称。它采用响应式和组件化设计,简化了交互式用户界面的构建。本文详细介绍 Vue.js 的核心概念、基本用法及如何构建响应式前端应用,包括实例、模板、响应式数据和组件等关键要素,并介绍了项目结构、Vue CLI、路由管理和状态管理等内容,帮助开发者高效地开发现代化前端应用。
|
1月前
|
缓存 JavaScript 前端开发
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
23 2
|
2月前
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
36 1