Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 단어를 나누지 않고 문장을 고정 길이의 블록으로 분할하는 방법

<시간/>

단락의 텍스트를 첫 번째 인수로 포함하고 청크 크기 번호를 두 번째 인수로 포함하는 문자열을 사용하는 JavaScript 함수를 작성해야 합니다.

함수는 다음 작업을 수행해야 합니다. -

  • 문자열을 청크 크기(두 번째 인수)보다 크지 않은 길이의 청크로 나눕니다.

  • 줄바꿈은 공백이나 문장 끝에서만 발생해야 합니다(단어를 끊어서는 안 됨).

예를 들어 - 입력 문자열이 -

인 경우
const str = 'this is a string';
const chunkLength = 6;

그러면 출력은 다음과 같아야 합니다. -

const output = ['this', 'is a', 'string'];

이 함수의 코드를 작성해 보겠습니다 -

정규 표현식을 사용하여 지정된 문자 수와 일치시킵니다. 일치하면 공백이나 문자열의 끝을 찾을 때까지 역추적합니다.

예시

이에 대한 코드는 -

const size = 200;
const str = "This process was continued for several years for the deaf
child does not here in a month or even in two or three years the
numberless items and expressions using the simplest daily intercourse
little hearing child learns from these constant rotation and imitation the
conversation he hears in his home simulates is mine and suggest topics and
called forth the spontaneous expression of his own thoughts.";
const splitString = (str = '', size) > {
   const regex = new RegExp(String.raw`\S.{1,${size &minu; 2}}\S(?= |$)`,
   'g');
   const chunks = str.match(regex);
   return chunks;
}
console.log(splitString(str, size));

출력

콘솔의 출력은 -

[
   'This process was continued for several years for the deaf child does
   not here in a month or even in two or three years the numberless items and
   expressions using the simplest daily intercourse little',
   'hearing child learns from these constant rotation and imitation the
   conversation he hears in his home simulates is mine and suggest topics and
   called forth the spontaneous expression of his own',
   'thoughts.'
]