`
tanbamboo
  • 浏览: 19315 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用 Regular Expression 驗證密碼

    博客分类:
  • Java
阅读更多
[转载] 使用 Regular Expression 驗證密碼
原文链接:http://blog.miniasp.com/post/2008/05/Using-Regular-Expression-to-validate-password.aspx


以前我都沒想過可以用 Regular Expressions 驗證複雜格式的密碼,原來可以用 Regular Expression 中的群組建構式達成這個目的,例如說密碼的條件是這樣:

至少有一個數字
至少有一個小寫英文字母
至少有一個大寫英文字母
字串長度在 6 ~ 30 個字母之間
那麼你的 Regular Expression 可以長這樣:

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,30}$
在這段 Regular Expression 的語法中值得注意的就是 (?=.*\d) 這段語法,這段於法又稱做「右合樣 (Positive Lookahead)」,右合樣(或左合樣)語法所佔用的寬度為 0,也就是說這段語法本真不會佔用比對的字元,僅僅只是 Regular Expression 中的一種「判斷式」而已,右合樣 (Positive Lookahead)會判斷右邊緊接著的字元是否符合比對條件,如果符合條件才會繼續比對下去。

所以剛剛這段於法的解釋大致可以這樣說明:

(?=.*\d) 與 (?=.*[a-z]) 與 (?=.*[A-Z]) 寬度都會是零,所以整個字串比對會以 .{6,30} 為主,但比對之前會分別比對 (?=.*\d) 與 (?=.*[a-z]) 與 (?=.*[A-Z]) 這三個判斷式,都判斷成功才會進行 .{6,30} 的比對。所以 (?=.*\d) 的 .*\d 就是說右邊的文字中一定要出現一個數字符號,(?=.*[a-z]) 的 .*[a-z] 就是說右邊的文字中一定要出現一個小寫字母,(?=.*[A-Z]) 的 .*[A-Z] 就是說右邊的文字中一定要出現一個大小字母,最後才會比對 .{6,30} 也就是說比對字串的長度必須在 6 ~ 30 個字的任意字元。

如果你的條件修改成:

至少有一個數字
至少有一個大寫或小寫英文字母
至少有一個特殊符號
字串長度在 6 ~ 30 個字母之間
那麼你的 Regular Expression 可以長這樣(以 C# 作範例):

Regex regex = new Regex(@"^(?=.*\d)(?=.*[a-zA-Z])(?=.*\W).{6,30}$");
這樣一來你知道如何融會貫通了嗎?^_^
分享到:
评论

相关推荐

    c#使用正则表达式验证输入密码条件

    在C#中,我们可以这样使用正则表达式验证密码: ```csharp using System; using System.Text.RegularExpressions; public class PasswordValidator { public static bool IsValidPassword(string password) { ...

    正则密码强度验证

    本文将详细介绍如何使用JavaScript编写一个正则表达式,以验证密码的强度,并将其分为低、中、高三等级别。 首先,我们需要了解正则表达式的基本概念。正则表达式是一种模式匹配工具,可以用来检查一个字符串是否...

    正则表达式判断密码强度

    总结来说,正则表达式是评估和验证密码强度的有效工具,但需要结合其他安全措施,以确保密码策略的全面性和安全性。同时,对密码周期的管理也是保护账户安全的重要一环,这通常通过后台管理系统来实现。

    C#程序设计-3期(KC008) KC008110200026_如何使用正则表达式验证输入密码条件.docx

    本篇将详细讲解如何使用正则表达式来验证输入的密码条件,以确保用户创建的密码安全且合规。 首先,我们要了解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式匹配语言,可以用来描述一系列字符...

    js正则表达式验证密码强度【推荐】

    在JavaScript中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配字符串模式。在本示例中,我们看到一个密码强度验证的实现,它利用正则表达式来评估用户输入的密码的安全级别。这个例子展示了...

    IOS密码验证和密码强度评估功能

    IOS密码验证和密码强度评估功能,源码Navajo,Navajo开源项目用于密码验证和密码强度评估,这个源码主要是用在一些应用中注册使用,或者密码修改等的一个密码验证和强度评估功能的。 可用的验证规则 Allowed ...

    验证自定义特殊字符.rar

    1. **正则表达式(Regular Expression)**:正则表达式是一种强大的文本处理工具,常用于模式匹配和字符串查找。你可以通过编写特定的正则表达式来定义允许或禁止的字符集。例如,如果你希望验证一个字符串是否只...

    正则表达式Regular Expression (RegExp)详解

    正则表达式还包含一些常用的模式,比如删除字符串首尾的空白字符的模式,以及用于验证密码强度的模式。例如,删除首尾空白的正则表达式可以是/(^\s*)|(\s*$)/g,它使用全局修饰符g来匹配字符串开头和结尾的空白字符...

    Java正则表达式验证web端输入[身份证,邮箱,手机,中文字符]

    在Java编程中,正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于数据验证、文本搜索和替换等场景。对于Web开发来说,输入验证是必不可少的一环,以确保用户提交的数据符合预期的格式。本教程...

    注册邮箱验证、手机号验证等正则表达验证

    正则表达式(Regular Expression)是进行这种验证的常用工具,它可以匹配和处理复杂的字符串模式。在“注册邮箱验证、手机号验证等正则表达验证”这个主题中,我们将探讨如何使用正则表达式来验证用户的邮箱地址和...

    regular-expression-url

    在提供的压缩包文件`regular-expression-url-master`中,可能包含了更多关于如何使用正则表达式处理URL的实例、练习或代码库,你可以进一步研究以加深理解和应用。通过实践,你将能更好地掌握使用JavaScript正则...

    表单验证特效

    正则表达式(Regular Expression)是用于匹配字符串模式的工具,对于复杂的格式验证,如邮箱、电话号码或网址,正则表达式显得尤为强大。例如,验证邮箱地址的正则表达式可以是`/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\...

    基于JavaScript的表单验证.zip

    正则表达式(Regular Expression)是用于匹配字符串模式的工具,尤其适用于复杂的数据验证。例如,验证电子邮件地址的格式,可以编写一个正则表达式来检查输入是否符合标准的电子邮件结构。JavaScript的`test`方法...

    正规式的使用和控件的验证

    在软件开发中,正规式(Regular Expression,简称Regex或RegEx)是一种强大的文本处理工具,它通过一系列简单的符号及特殊字符的组合来描述、匹配一系列符合某个句法规则的字符串。在ASP.NET等Web开发框架中,正规式...

    asp邮箱验证代码

    在ASP中,这通常通过正则表达式(Regular Expression)来实现。例如,可以创建一个函数,接收邮箱地址作为参数,然后用正则表达式检查其格式是否符合标准的邮箱格式(如:`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA...

    JS正则验证大全 (.Net客户端验证)

    正则表达式(Regular Expression)是模式匹配工具,可以用来进行字符串的查找、替换和分割等操作。在JavaScript中,它通过`RegExp`对象和相关的函数实现。例如,我们可以创建一个正则表达式对象,用于验证电子邮件...

    autoit 正则验证工具

    正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于数据验证、文本搜索和替换等场景。这个工具能够帮助程序员和开发者在编写或调试正则表达式时,快速检查其是否能够匹配预期的字符串,确保其在...

    验证密码强度Javascript:密码验证程序验证我们在各种注册网站中看到的密码强度

    在JavaScript中,我们可以通过正则表达式(Regular Expression)来实现这些规则的检测。例如,以下代码片段可以检查密码是否包含大小写字母、数字和特殊字符: ```javascript function checkStrength(password) { ...

    Ajax通用的数据验证程序

    3. **格式检查**:通过正则表达式(Regular Expression)验证输入的格式,如邮箱、电话号码、网址等。 4. **唯一性检查**:确保输入的数据在数据库中是唯一的,如用户名或ID。 5. **复杂性检查**:对于密码,可能...

    MFC中利用正则表达式进行密码匹配

    - 创建一个成员函数,如`CheckPasswordValidity`,用于验证密码是否符合规则。 - 在这个函数中,使用`std::regex`或Boost的`boost::regex`构造一个符合密码规则的正则表达式。 - 使用`std::regex_match`或`boost:...

Global site tag (gtag.js) - Google Analytics