簡體   English   中英

Javascript 中的密碼強度測試

[英]Password strength test in Javascript

所以我正在為我的 JS 類編寫一個程序,我編寫的代碼只是一些我不理解的問題。

let readlineSync = require('readline-sync')

let userPassword = readlineSync.question('Please enter a password ')

const testPassword = (password, rulesRegexp, rulesText) => {
    for (let i in rulesRegexp) {
        console.log(rulesText[i]);
        console.log(`Status:  ${rulesRegexp[i].rule.test(password)}`);
    }
};

const rules = [
    { rule: /[A-Z]/ },
    { rule: /[a-z]/ },
    { rule: /[0-9]/ },
    { rule: /[@#$%^]/ },
    { rule: /.{8,}/g },
];

const ruleText = [
    "One or more uppercase letters",
    "One or more lower case letters",
    "One or more numbers",
    "One or more from this group @#$%^",
    "Minimum length 8 characters",
];

testPassword(userPassword, rules, ruleText);

我需要規則和測試在同一行,我需要它說通過或失敗而不是真或假。 我有人可以幫助我將不勝感激。

它們位於不同的行上,因為這就是登錄到控制台的工作方式。 對於通過/失敗,檢查test方法是否為真/假並使用三元更改輸出。

您可以推送到一個數組並像這樣記錄:

const testPassword = (password, rulesRegexp, rulesText) => {
    const results = []
    for (let i in rulesRegexp) {
        const result = `${rulesText[i]} Status:  ${rulesRegexp[i].rule.test(password) ? 'Passed' : 'Failed'}`
        results.push(result)
    }

    console.log(results.join('\n'))
};

示例輸出:

One or more uppercase letters Status:  Failed
One or more lower case letters Status:  Passed
One or more numbers Status:  Passed
One or more from this group @#$%^ Status:  Failed
Minimum length 8 characters Status:  Passed

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM