자바스크립트에서 임의의 문자열, Random 문자열을 생성하는 방법을 소개합니다.
1. for와 Math.random()으로 랜덤 문자열 생성
1.1 Math.random()
Math.random()
는 0과 1사이의 무작위 숫자를 리턴합니다. 리턴된 결과에 10, 100 등의 숫자 n을 곱하면 0에서 n 사이의 임의의 숫자가 리턴됩니다.
console.log(Math.random());
console.log(Math.random());
console.log(Math.random() * 10);
console.log(Math.random() * 100);
Output:
0.7407869398243148
0.6270616059298579
6.848394509625537
12.670519190118746
1.2 랜덤 문자열 생성
무작위 숫자가 리턴되는 것을 이용하여 아래와 같이 반복문을 이용하여 랜덤 문자열을 생성할 수 있습니다.
generateRandomString(num)
은 문자열의 길이가 num인 랜덤 문자열을 생성합니다. 아래 예제는 랜덤 문자열에 알파벳만 포함되도록 했는데, 숫자도 포함되게 하려면 characters
에 숫자를 추가하시면 됩니다. 코드를 보시면 0에서 num 사이의 임의 숫자를 생성하고, 배열에서 해당하는 Index의 문자를 연결하여 리턴하고 있습니다.
const generateRandomString = (num) => {
const characters ='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
let result = '';
const charactersLength = characters.length;
for (let i = 0; i < num; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
let randomStr = generateRandomString(10);
console.log(randomStr);
randomStr = generateRandomString(20);
console.log(randomStr);
Output:
bjYHZYXInv
dfjKJvMMebLsrGrVMuwl
2. Math.random()으로 랜덤 문자열 생성
Math.random()
으로 리턴된 결과를 toString(36)
으로 36진수로 변환할 수 있습니다.
36진수로 출력된 문자열을 보면 0.xxxxxx
처럼 출력되는데 여기서 0.
을 제거하고 뒤의 문자들을 랜덤 문자열로 사용하는 방법입니다.
console.log(Math.random());
console.log(Math.random().toString(36));
Output:
0.7523554364964684
0.1bthuzjhesx
위에서 설명한 것처럼, substring(2, 12)
으로 0.
을 자르고 뒤의 10개의 문자를 랜덤 문자열로 사용할 수 있습니다.
for 반복문으로 랜덤 문자열을 생성하는 방법은 문자열 길이를 자유롭게 설정할 수 있지만, 여기서 사용한 방법은 36진수의 문자열 길이가 12정도입니다. 그 이상의 길이의 랜덤 문자열을 생성하지는 못합니다.
let randomStr = Math.random().toString(36).substring(2, 12);
console.log(randomStr);
Output:
in5b7d2d0t
substring()에 대한 자세한 설명은 JavaScript - substring()과 slice()의 차이점를 참고해주세요.
Related Posts
- Javascript - 현재 날짜/시간을 항상 한국 기준으로 가져오기
- Javascript - 문자열 사이에 문자 넣기
- Javascript - 버튼 활성화/비활성화 시키는 방법
- Javascript - 버튼 이름 변경하기
- Javascript - div 안의 내용 가져오기, 변경, 추가, 삭제
- Javascript - <ol>, <ul>에 <li> 동적 추가, 삭제
- Javascript - div 생성, 추가, 삭제 방법
- Javascript - 테이블 행(tr) 숨기기, 보이기
- Javascript - div에 링크 거는 방법
- Javascript - 자식 요소(element) 개수 확인
- Javascript - 요소(element) 복사, 붙여넣기
- Javascript - div에 클릭 이벤트(onclick) 설정 방법
- Javascript - 체크박스 선택/해제 시, 텍스트박스 활성화/비활성화
- Javascript - input 숫자만 입력받도록 설정
- Javascript - 자식 노드 모두 제거
- Javascript - 체크박스 선택, 해제 방법
- Javascript - input text 값 가져오기
- JavaScript - 문자열을 배열(Array)로 변환
- JavaScript - 특정 문자열의 포함 여부 확인 (includes, 정규표현식)
- JavaScript - 문자열 비교 방법, 5가지
- JavaScript - 문자열 바꾸기(replace, 정규식 치환)
- JavaScript - 배열 전체 출력 (for, forEach, for in, for of)
- JavaScript - 한번만 실행되는 함수 (once: true)
- JavaScript - 선택된 checkbox 값 가져오기
- JavaScript - element(버튼, div) 보이기 숨기기
- JavaScript - 숫자를 배열로 변경하는 방법
- JavaScript - div, 태그 안의 내용 가져오기
- JavaScript - 부모, 형제, 자식 element 찾기
- JavaScript - 클래스 이름으로 element 찾는 방법
- JavaScript Array find() 함수
- JavaScript Array splice() 함수
- JavaScript의 contains() 함수
- JavaScript sort() 함수, 예제 소개
- JavaScript - Set 생성 및 초기화
- JavaScript Set add() 함수