문자열에 특정 하위 문자열의 문자가 포함되어 있는지 확인하는 방법

카일 C

저는 코딩 부트 캠프를하고 있으며 우리의 목표는 사용자가 어떤 유형의 문자 (소문자, 대문자, 숫자 및 특수 문자)와 길이를 선택하고 임의의 보안 암호를 제공하는 암호 생성기를 설정하는 것입니다.

생성 된 암호 에 사용자가 선택한 각 문자 포함 해야 한다는 할당의 중요한 부분을 제외하고는이 모든 측면이 작동하도록 할 수 있습니다. 현재 무작위로 잡기 때문에 4 가지 기준을 모두 선택하면 모두 표시되는 것이 항상 보장되는 것은 아닙니다. 어떻게 확인할 수 있습니까?

const lowCaseArr = "abcdefghijklmnopqrstuvwxyz";
const upCaseArr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const numeralArr = "1234567890";
const specialArr = "!@#$%^&*";

function getLength() {
    while (true) {
        var userLength = parseInt(prompt("How many numbers, between 8 and 128, would you like to use? (Enter 0 to cancel)"));
        if (userLength == 0) {
            return 0;
        } else if (userLength > 128 || userLength < 8) {
            alert("You must enter a number between 8-128.");
        } else if (userLength <= 128 && userLength >= 8) {
            alert("Great! Your have selected a password with " + userLength + " characters.");
            return userLength;
        }
    } 
}

function randChar(passwordCharacters) {
    return passwordCharacters.charAt(Math.floor(Math.random() * passwordCharacters.length));
}

function makePassword(userLength, passwordCharacters) { 
    var securePassword = "";
    for (i = 0; i < userLength; i++) {    
        securePassword += randChar(passwordCharacters);
    }
    return securePassword;
}

function generatePassword() {
    var userLength = getLength();
    if (userLength == 0) {
        return "User Cancelled Request";
    }


    var passwordCharacters = "";
    var askLowerCase = confirm("Would you like to include lower case characters? (a, b, c)");
    if (askLowerCase !== true) {
        alert("Got it. No lower case characters will be included.");
    } else {
        alert("Great! Your password will include lower case characters!");
        passwordCharacters += lowCaseArr;
    }

    var askUpperCase = confirm("Would you like to include upper case characters? (A, B, C)");
    if (askUpperCase !== true) {
        alert("Got it. No upper case characters will be included.");
    } else {
        alert("Great! Your password will include upper case characters!");
        passwordCharacters += upCaseArr;
    }

    var askNumerals = confirm("Would you like to include numeral characters? (1, 2, 3)");
    if (askNumerals !== true) {
        alert("Got it. No numeral characters will be included.");
    } else {
        alert("Great! Your password will include numeral characters!");
        passwordCharacters += numeralArr;
    }

    var askSpecial = confirm("Would you like to include special characters? (~, !, @)");
    if (askSpecial !== true) {
        alert("Got it. No special characters will be included.");
    } else {
        alert("Great! Your password will include special characters!");
        passwordCharacters += specialArr;
    }    

    var basePassword = makePassword(userLength, passwordCharacters);

    var securePassword = validateOptions(basePassword, askLowerCase, askUpperCase, askNumerals, askSpecial);
    return securePassword;

}

var generateBtn = document.querySelector("#generate");

function writePassword() {
    var password = generatePassword();
    var passwordText = document.querySelector("#password");

    passwordText.value = password;
}

generateBtn.addEventListener("click", writePassword);

내 생각은 암호를 확인하는 기능을 만드는 것입니다. 여기에 가장 좋은 논리가 무엇인지 잘 모르겠습니다.

function validateOptions(basePassword, askLowerCase, askUpperCase, askNumerals, askSpecial) {

    var securePassword = basePassword;

    // while (missing requirements) {
    // Validate that all selected characters have been included

    //  if securePassword does not contain lowercase, 
    //      then replace a random char in string with lowercase character
    //  if securePassword does not contain uppercase,
    //      then replace a random char in string with uppercase character
    //  if securePassword does not contain numbers,
    //      then replace a random char in string with numeral character
    //  if securePassword does not contain special characters,
    //      then replace a random char in string with a special character
    //  }
    
    return securePassword;
}
kmoser

사후에 암호를 변경하는 대신 모든 제약 조건을 충족하는지 확인하여 처음부터 올바르게 생성 할 수 있습니다.

내가 독립 기능을 생성하는 코드의 조각을 찍은 makeSecurePassword()여러 인수를 받아들이는 : userLength, askLowerCase, askUpperCase, askNumerals, askSpecial. 요청 된 userLength문자 유형 만 포함 된 요청 된의 비밀번호를 반환합니다 . randChar()도우미 기능을 사용합니다 .

var securePassword = makeSecurePassword( 10, true, true, true, true );

console.log(securePassword);

// Return a random character from passwordCharacters:
function randChar(passwordCharacters) {
    return passwordCharacters.charAt(Math.floor(Math.random() * passwordCharacters.length));
}

function makeSecurePassword( userLength, askLowerCase, askUpperCase, askNumerals, askSpecial ) {
    const lowCaseArr = "abcdefghijklmnopqrstuvwxyz";
    const upCaseArr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    const numeralArr = "1234567890";
    const specialArr = "!@#$%^&*";

    var password = [];

    // Decide which chars to consider:
    charArray = [];
    if ( askLowerCase ) {
        charArray.push( lowCaseArr );
    }
    if ( askUpperCase ) {
        charArray.push( upCaseArr );
    }
    if ( askNumerals ) {
        charArray.push( numeralArr );
    }
    if ( askSpecial ) {
        charArray.push( specialArr );
    }
    
    let x = 0; // index into charArray
    for ( var i=0; i < userLength; i++ ) {
        var a = charArray[x]; // Which array of chars to look at

        // Insert at random spot:       
        password.splice( password.length, 1, randChar( a ) );

        // Pick next set of chars:
        if ( ++x >= charArray.length ) {
            x = 0; // Start with the first set of chars if we went past the end
        }
    }

    return password.join(''); // Create a string from the array of random chars
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

열에 특정 문자 만 포함되어 있는지 확인하는 방법

분류에서Dev

문자열에 특정 문자가 포함되어 있는지 확인하는 방법

분류에서Dev

문자열에 특수 문자가 포함되어 있는지 확인하는 방법은 무엇입니까?

분류에서Dev

사용자 정의 문자열 형식에 '/'가 포함되어 있는지 확인하는 방법

분류에서Dev

문자열에 배열의 특정 요소가 포함되어 있지만 다른 요소는 포함되어 있지 않은지 확인하는 방법

분류에서Dev

문자열에 특정 순서의 하위 문자열이 포함되어 있는지 확인

분류에서Dev

wordList에 Java 구문의 하위 문자열 중 하나가 포함되어 있는지 확인하는 방법

분류에서Dev

PostgreSQL jsonb 열에 특정 문자열이 포함되어 있는지 확인하는 빠른 방법

분류에서Dev

PostgreSQL jsonb 열에 특정 문자열이 포함되어 있는지 확인하는 빠른 방법

분류에서Dev

정규식-문자열에 단어와 숫자가 포함되어 있는지 확인하는 방법

분류에서Dev

문자열에 숫자가 포함되어 있는지 확인하는 방법

분류에서Dev

XML 문자열에 jQuery에서 특정 값이 포함되어 있는지 확인하는 방법

분류에서Dev

목록의 모든 항목에 문자열의 문자가 포함되어 있는지 확인하는 방법

분류에서Dev

문자열에 C #의 유니 코드 문자가 포함되어 있는지 확인하는 방법

분류에서Dev

문자열에 일정한 양의 문자와 숫자가 포함되어 있는지 확인하는 방법 C #

분류에서Dev

문자열에 특정 문자가 포함되어 있는지 확인하는 패턴

분류에서Dev

문자열에 파이썬의 특정 문자 만 포함되어 있는지 확인하는 방법은 무엇입니까?

분류에서Dev

문자열에 Ocaml의 숫자 문자 만 포함되어 있는지 확인하는 방법

분류에서Dev

Excel에서 텍스트와 숫자가 모두있는 특정 값이 문자열에 포함되어 있는지 확인하는 방법

분류에서Dev

JavaScript를 사용하여 문자열에 개체의 특정 키워드가 포함되어 있는지 확인하는 방법

분류에서Dev

문자열에 특정 문자의 인스턴스가 두 개 이상 포함되어 있는지 식별하는 방법은 무엇입니까?

분류에서Dev

Excel에서 범위의 모든 셀에 특정 문자열 만 포함되어 있는지 확인하는 방법

분류에서Dev

정규식 : 문자열에 2 개 이상의 대문자가 포함되어 있는지 확인하는 방법은 무엇입니까?

분류에서Dev

정규식 : 문자열에 2 개 이상의 대문자가 포함되어 있는지 확인하는 방법은 무엇입니까?

분류에서Dev

문자열에 특정 문자열이 뒤 따르는 숫자가 포함되어 있는지 찾는 방법

분류에서Dev

문자열에 특정 언어의 문자가 하나 이상 포함되어 있는지 감지하는 방법은 무엇입니까?

분류에서Dev

문자열에 Java의 연산자가 포함되어 있는지 확인하는 방법

분류에서Dev

테이블의 문자열에 다른 테이블에 지정된 문자열이 포함되어 있는지 확인하는 방법

분류에서Dev

테이블의 문자열에 다른 테이블에 지정된 문자열이 포함되어 있는지 확인하는 방법

Related 관련 기사

  1. 1

    열에 특정 문자 만 포함되어 있는지 확인하는 방법

  2. 2

    문자열에 특정 문자가 포함되어 있는지 확인하는 방법

  3. 3

    문자열에 특수 문자가 포함되어 있는지 확인하는 방법은 무엇입니까?

  4. 4

    사용자 정의 문자열 형식에 '/'가 포함되어 있는지 확인하는 방법

  5. 5

    문자열에 배열의 특정 요소가 포함되어 있지만 다른 요소는 포함되어 있지 않은지 확인하는 방법

  6. 6

    문자열에 특정 순서의 하위 문자열이 포함되어 있는지 확인

  7. 7

    wordList에 Java 구문의 하위 문자열 중 하나가 포함되어 있는지 확인하는 방법

  8. 8

    PostgreSQL jsonb 열에 특정 문자열이 포함되어 있는지 확인하는 빠른 방법

  9. 9

    PostgreSQL jsonb 열에 특정 문자열이 포함되어 있는지 확인하는 빠른 방법

  10. 10

    정규식-문자열에 단어와 숫자가 포함되어 있는지 확인하는 방법

  11. 11

    문자열에 숫자가 포함되어 있는지 확인하는 방법

  12. 12

    XML 문자열에 jQuery에서 특정 값이 포함되어 있는지 확인하는 방법

  13. 13

    목록의 모든 항목에 문자열의 문자가 포함되어 있는지 확인하는 방법

  14. 14

    문자열에 C #의 유니 코드 문자가 포함되어 있는지 확인하는 방법

  15. 15

    문자열에 일정한 양의 문자와 숫자가 포함되어 있는지 확인하는 방법 C #

  16. 16

    문자열에 특정 문자가 포함되어 있는지 확인하는 패턴

  17. 17

    문자열에 파이썬의 특정 문자 만 포함되어 있는지 확인하는 방법은 무엇입니까?

  18. 18

    문자열에 Ocaml의 숫자 문자 만 포함되어 있는지 확인하는 방법

  19. 19

    Excel에서 텍스트와 숫자가 모두있는 특정 값이 문자열에 포함되어 있는지 확인하는 방법

  20. 20

    JavaScript를 사용하여 문자열에 개체의 특정 키워드가 포함되어 있는지 확인하는 방법

  21. 21

    문자열에 특정 문자의 인스턴스가 두 개 이상 포함되어 있는지 식별하는 방법은 무엇입니까?

  22. 22

    Excel에서 범위의 모든 셀에 특정 문자열 만 포함되어 있는지 확인하는 방법

  23. 23

    정규식 : 문자열에 2 개 이상의 대문자가 포함되어 있는지 확인하는 방법은 무엇입니까?

  24. 24

    정규식 : 문자열에 2 개 이상의 대문자가 포함되어 있는지 확인하는 방법은 무엇입니까?

  25. 25

    문자열에 특정 문자열이 뒤 따르는 숫자가 포함되어 있는지 찾는 방법

  26. 26

    문자열에 특정 언어의 문자가 하나 이상 포함되어 있는지 감지하는 방법은 무엇입니까?

  27. 27

    문자열에 Java의 연산자가 포함되어 있는지 확인하는 방법

  28. 28

    테이블의 문자열에 다른 테이블에 지정된 문자열이 포함되어 있는지 확인하는 방법

  29. 29

    테이블의 문자열에 다른 테이블에 지정된 문자열이 포함되어 있는지 확인하는 방법

뜨겁다태그

보관