광고
이전 포스팅에서는 Javascript를 통해 특정 영역안에 단어를 임의로 추출하는 기능을 만들어봤는데요.
이번에는 특정 영역안에 문단글을 넣어놓고 임의로 추출하는 기능을 만들어볼게요.
랜덤 문단 추출 함수
function RandomSentence(str) {
const regex = /\[\[([\s\S]*?)\]\]/g;
let sentences = [];
let match;
while (match = regex.exec(str)) {
sentences = match[1].split(/\r?\n/).filter(Boolean);
const randomIndex = Math.floor(Math.random() * sentences.length);
const selectedSentence = sentences[randomIndex].trim();
str = str.replace(match[0], selectedSentence);
regex.lastIndex -= match[0].length - selectedSentence.length;
}
return str;
}
1. 정규 표현식 활용: [[…]]로 둘러싸인 부분을 찾기 위해 정규 표현식을 사용합니다. 이는 대괄호 안에 포함된 모든 내용을 찾아낼 수 있게 해 줍니다.
2. 문장 분리 및 선택: 찾아낸 텍스트에서 각 줄을 분리한 후, 비어 있지 않은 줄만을 골라내어 배열에 저장합니다. 이 배열에서 무작위로 한 문장을 선택합니다.
3. 텍스트 교체: 원래 문자열에서 [[…]] 부분을 무작위로 선택된 문장으로 대체합니다.
4. 인덱스 조정: 문자열 내에서 다음 매칭을 위해 현재 위치를 조정합니다. 이는 선택된 문장 길이에 따라 동적으로 변경됩니다.
랜덤 문단 추출기능