JavaScript 使用正则表达式验证密码的程序

JavaScript 使用正则表达式验证密码的程序

在本文中,我们将看到JavaScript程序来检查和验证一个强密码或弱密码,根据自定义的范围。为了完成这个任务,我们将使用JavaScript正则表达式。

正则表达式是一系列形成搜索模式的字符序列。搜索模式可以用于文本搜索和文本替换操作。正则表达式可以是一个单一字符或一个更复杂的模式。

一个强密码必须是最小长度8个字符到用户需要的最大范围(本篇文章设置最大限制为15个字符)。它必须包含以下内容:

  • 至少一个小写字母即[a-z]
  • 至少一个大写字母即[A-Z]
  • 至少一个数字即[0-9]
  • 至少一个特殊字符即['@','$','.','#','!','%','*','?','&','^']
  • 同时,总长度必须在[8-15]的范围内

语法

字符串密码所需的正则表达式为:

let regex =  /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@.#!%*?&^])[A-Za-z\d@.#!%*?&]{8,15}$/;

使用正则表达式验证密码的方法

  • 简单的布尔输出
  • 根据密码强度多个结果

简单的布尔输出

示例: 在这个示例中,我们将仅验证给定的密码是否强壮,并输出true或false。

Javascript

let regex =  
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@.#!%*?&])[A-Za-z\d@.#!%*?&]{8,15}$/; 
  
let pass1 = "Geeks@123"; 
let pass2 = "GeeksforGeeks"; 
let pass3 = "Geeks123"; 
  
console.log(pass1, regex.test(pass1)); 
console.log(pass2, regex.test(pass2)); 
console.log(pass3, regex.test(pass3));

输出

Geeks@123 true
GeeksforGeeks false
Geeks123 false

基于密码强度的多个输出

在这种方法中,我们将根据数字、字母、特殊符号等的组合数量来设置密码的强度。

示例: 该示例将根据密码的强度验证密码。

Javascript

const strength = { 
    1: "very Weak", 
    2: "Weak", 
    3: "Meduim", 
    4: "Strong", 
}; 
function checkStrength(pass) { 
    if (pass.length > 15) 
        return console.log( 
            pass + " Password is too lengthy"
        ); 
    else if (pass.length < 8) 
        return console.log( 
            pass + " Password is too short"
        ); 
  
    let regex = 
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@.#!%*?&])[A-Za-z\d@.#!^%*?&]{8,15}/; 
    if (regex.test(pass)) { 
        return console.log(pass  
        + " Password is strong"); 
    } 
    let count = 0; 
    let regex1 = /[a-z]/; 
    if (regex1.test(pass)) count++; 
    let regex2 = /[A-Z]/; 
    if (regex2.test(pass)) count++; 
    let regex3 = /[\d]/; 
    if (regex3.test(pass)) count++; 
    let regex4 = /[!@#%^&*.?]/; 
    if (regex4.test(pass)) count++; 
  
    console.log(pass, "Pasword is " + strength[count]); 
} 
let passwords = [ 
    "u4thdkslfheogica", 
    "G!2ks", 
    "GeeksforGeeks", 
    "Geeks123", 
    "GEEKS123", 
    "Geeks@123#", 
]; 
passwords.map((e) => checkStrength(e));

输出

u4thdkslfheogica Password is too lengthy
G!2ks Password is too short
GeeksforGeeks Pasword is Weak
Geeks123 Pasword is Meduim
GEEKS123 Pasword is Weak
Geeks@123# Password is strong

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程