Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 문자열의 n번째마다 문자 삽입하는 방법

이번 튜토리얼에서는 세 개의 인수를 받는 JavaScript 함수를 작성해 보겠습니다. 첫 번째 인수는 문자열, 두 번째 인수는 숫자, 세 번째 인수는 단일 문자(이하 char)입니다.

두 번째 인수로 전달되는 숫자는 항상 문자열 길이보다 작다고 가정합니다. 이 함수는 문자열에서 n글자마다 지정된 문자를 삽입하여 새로운 문자열을 만든 뒤 이를 반환해야 합니다.

예시

예를 들어 다음과 같이 인수를 전달했다고 가정해 보겠습니다.

const str = 'NewDelhi';
const n = 3;
const char = ' ';

그렇다면 함수는 아래와 같은 결과 문자열을 반환해야 합니다.

const output = 'Ne wDe lhi';

구현 코드

다음은 위 요구 사항을 구현한 코드입니다.

const str = 'NewDelhi';
const n = 3;
const char = ' ';

const insertAtEvery = (str = '', num = 1, char = ' ') => {
    str = str.split('').reverse().join('');
    const regex = new RegExp('.{1,' + num + '}', 'g');
    str = str.match(regex).join(char);
    str = str.split('').reverse().join('');
    return str;
};

console.log(insertAtEvery(str, n, char));

동작 원리

이 코드는 다음과 같은 순서로 동작합니다.

  1. 문자열 뒤집기: split('')으로 한 글자씩 분리한 뒤 reverse()로 순서를 거꾸로 하고, join('')으로 다시 하나의 문자열로 합칩니다.
  2. n글자씩 분리: 정규 표현식 .{1,n}을 사용해 문자열을 최대 n글자씩 조각으로 나눕니다.
  3. 문자 삽입 및 복원: 나눠진 조각들을 join(char)으로 연결해 사이사이에 지정한 문자를 넣고, 마지막으로 다시 뒤집어 원래 순서를 복원합니다.

문자열을 미리 뒤집은 상태에서 그룹을 나누기 때문에, 문자 삽입 기준은 문자열 끝에서부터 n글자씩 묶이는 방식이 됩니다. 따라서 마지막에 남는 그룹은 n글자보다 짧을 수 있습니다.

출력 결과

위 코드를 실행하면 콘솔에 다음과 같이 출력됩니다.

Ne wDe lhi