프로그래밍/자바스크립트
javascript : 영문 + 숫자 + 특수문자를 조합하여 랜덤으로 길이만큼 출력하기
재우니
2021. 11. 4. 00:39
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/