재우니의 블로그

 

javascript 를 통해 영문 + 숫자 + 특수문자를 조합하여 랜덤으로 길이만큼 출력하기

 

 

possible 이라는 값에 대문자, 소문자, 숫자, 특수문자가 포함되어 있습니다.  여기서 사용되는 javascript 함수 중에charAt() 함수는 문자열에서 특정 인덱스에 위치하는 유니코드 단일문자를 반환합니다.

 

예를 들어 charAt(4) 를 호출하면, sentnece 의 문자열(The quick brown fox jumps over the lazy dog.) 중에 순서대로 0(T)부터 세면 4번째는 소문자 q 를 찾게 됩니다.

 

const sentence = 'The quick brown fox jumps over the lazy dog.';
const index = 4;
console.log(`The character at index ${index} is ${sentence.charAt(index)}`);
// expected output: "The character at index 4 is q"

 

난수를 통해 길이만큼 얻기 위해서 length 에 얻고자 하는 문자개수를 넣고 나면, for 문을 통해 개수 만큼 Math.random() 함수를 통해 랜덤으로 문자열 총 개수를 기반으로 가져오게 됩니다. 

 

Math.random() 메서드는 0부터 1미만의 난수를 출력하고, Math.floor() 메서드는 괄호 안의 숫자를 내림 역할을 해 줍니다.

possible 의 문자열 수가 총 89자 입니다. Math.random() * 89 를 사용하게 되면 0부터 89 미만까지의 난수를 얻게 되고 난 후, 다시  Math.floor() 함수를 통해 0부터 88까지의 정수를 얻어 charAt () 함수를 통해 인덱스에 위치한 passible 문자열을 for 문을 통해 요청한 length 길이 만큼 하나씩 추출해서 text 변수에 += 통해 담습니다.

 

function randomDigitCharactersSpecialCharacterslength(lenth){
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+~`{}[]:;<>?,./|";
    for( var i=0; i < lenth; i++ )
        text += possible.charAt(Math.floor(Math.random() * possible.length));
    return text;
}



console.log(randomDigitCharactersSpecialCharacterslength(15));

 

테스트 하기

 

https://jsfiddle.net/fwyx1mrd/

 

Edit fiddle - JSFiddle - Code Playground

 

jsfiddle.net