0009's Blog  
-- 夏天以南
日历
<2007年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789
统计
  • 随笔 - 10
  • 文章 - 0
  • 评论 - 83
  • 引用 - 3

导航

与我联系

搜索

 

常用链接

留言簿(6)

我参与的团队

随笔分类(14)

积分与排名

  • 积分 - 16615
  • 排名 - 2591

阅读排行榜

评论排行榜

 

之前发过一个关于用JavaScript验证密码强度的,程序很简洁,只用了一个正则便能验证所有情况,但是因为利用了取巧的方法,所以只能在IE中使用,在FF中失效,现在修改一下做一个兼容的版本。

规则如下(分四个等级,等级超高强度越高):

0.
密码为空
1. 密码长度小于六位.或者密码只有一种组合
2. 密码长度大于五位, 且有两种组合.
3. 密码长度大于五位, 且有三种组合.
4. 密码长度大于五位, 且有四种组合.

四种组合指 数字,小写字母,大写字母,其它字符

源代码如下:
function EvaluatePassword(word)
{
    
if (word == "")
    {
        
return 0;
    }
    
else if (word.length < 6)
    {
        
return 1;
    }
    
else
    {
        
return word.match(/[a-z](?![^a-z]*[a-z])|[A-Z](?![^A-Z]*[A-Z])|\d(?![^\d]*\d)|[^a-zA-Z\d](?![a-zA-Z\d]*[^a-zA-Z\d])/g).length;
    }
}


测试代码:

<script language="JavaScript">
function EvaluatePassword(word)
{
    
if (word == "")
    {
        
return 0;
    }
    
else if (word.length < 6)
    {
        
return 1;
    }
    
else
    {
        
return word.match(/[a-z](?![^a-z]*[a-z])|[A-Z](?![^A-Z]*[A-Z])|\d(?![^\d]*\d)|[^a-zA-Z\d](?![a-zA-Z\d]*[^a-zA-Z\d])/g).length;
    }
}
var test = new Array("""a1_""abcdef""abcde123""ads23%""aA1B2^&2");
for(var i in test)
{
    document.write(test[i] 
+ " 的密码强度为" + EvaluatePassword(test[i]) + "<br>");
}
</script>


posted on 2007-05-08 12:58 0009 阅读(1678) 评论(10)  编辑 收藏 网摘 所属分类: Web客户端,脚本正则表达式
评论:
  • #1楼   傻大木 [未注册用户] Posted @ 2007-05-08 14:08
    支持了,多谢分享   回复  引用    

  • #2楼   s3 [未注册用户] Posted @ 2007-05-08 16:05
    不错   回复  引用    

  • #3楼   sapo34 [未注册用户] Posted @ 2007-05-08 22:55
    不会用呀,怎么实现这样的效果呢?

    密码:<input id="txt" onblur="ck(this.value)"><label id=n></label>
    <script>
    function ck(t){
    n.innerText=/(?:^(w)1{0,8}$)|^(?:(0?1?2?3?4?5?6?7?8?9?0?)2?$)|^w{0,6}$/i.test(t)?'太简单了':'还行吧';
    }
    </script>   回复  引用    

  • #4楼   fox23       Posted @ 2007-05-08 23:16
    汗颜,高手阿!
    请问阁下一般是用的什么编辑器 编写JS的阿?能推荐一下不?   回复  引用  查看    

  • #5楼   IT_zen [未注册用户] Posted @ 2007-05-09 09:05
    楼主正则这么厉害啊,如何学的?   回复  引用    

  • #6楼 [楼主]  0009       Posted @ 2007-05-09 09:35
    @sapo34

    密码:<input id="txt" onblur="CheckPassword(this.value)"><label id=n></label>
    <script>
    function EvaluatePassword(word)
    {
    if (word == "")
    {
    return 0;
    }
    else if (word.length < 6)
    {
    return 1;
    }
    else
    {
    return word.match(/[a-z](?![^a-z]*[a-z])|[A-Z](?![^A-Z]*[A-Z])|\d(?![^\d]*\d)|[^a-zA-Z\d](?![a-zA-Z\d]*[^a-zA-Z\d])/g).length;
    }
    }
    function CheckPassword(password)
    {
    document.getElementById("n").innerText = function (pwd)
    {
    switch (EvaluatePassword(pwd))
    {
    case 0:
    return "未输入";
    case 1:
    return "太简单";
    case 2:
    return "还可以";
    case 3:
    return "比较强";
    case 4:
    return "非常强";
    }
    }(password)
    }
    </script>   回复  引用  查看    

  • #7楼 [楼主]  0009       Posted @ 2007-05-09 09:37
    @fox23
    我还一直NotePad2+IE,感觉也很不方便.但一直没找到能用得顺手的JS编辑器.

    前两天找了一个1st JavaScript Editor 3.8感觉还可以,不过用得还不是很顺手.这个软件在CSDN下载频道上有破解补丁.   回复  引用  查看    

  • #8楼 [楼主]  0009       Posted @ 2007-05-09 09:38
    @IT_zen

    对正则比较感兴趣 :)

      回复  引用  查看    

  • #9楼   曼陀罗       Posted @ 2007-05-10 23:45
    ^_^
    崇拜死你啦   回复  引用  查看    

  • #10楼   VisualStudio       Posted @ 2008-11-11 15:19
    zhe ge 兼容!   回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接:
 
 
Copyright © 0009 Powered by: 博客园 模板提供:沪江博客