문자열의 마지막 문자를 제거하는 방법에 대해서 알아보겠습니다.

예를 들어, 가끔 문자열 끝에 ,가 있는 경우, 마지막 문자를 제거하여 깔끔하게 만들고 싶을 때가 있습니다. 이럴 때 사용할 수 있습니다.

1. substring()을 이용한 방법

substring(start, end)는 문자열에서 start Index를 포함하고, end를 포함하지 않는 범위의 문자열을 잘라서 리턴합니다.

즉, str.substring(0, str.length - 1)는 Index 0에서 문자열 마지막 문자 이전까지 잘라서 문자열로 리턴하며, 이렇게 마지막 문자를 제거할 수 있습니다.

let str = "Hello, World,";
let newStr = str.substring(0, str.length - 1);
console.log(newStr); // "Hello, World"

Output:

Hello, World

2. slice()를 이용한 방법

slice()도 substring()과 동일하게 특정 범위 Index의 문자열을 잘라서 리턴합니다. 약간의 차이점이 있는데, slice의 경우 음수 범위의 Index를 입력할 수 있으며, -1은 문자열 끝 바로 이전의 Index로 사용할 수 있습니다.

let str = "Hello, World,";
let newStr = str.slice(0, -1);
console.log(newStr); // "Hello, World"

Output:

Hello, World

slice와 substring의 차이점은 JavaScript - substring()과 slice()의 차이점을 참고해주세요.

3. 정규표현식을 이용한 방법

replace(pattern, repl)은 문자열에서 정규표현식 pattern에 해당하는 내용을 repl로 변경합니다.

  • 아래 예제에서 .$ 패턴은 문자열 끝 바로 앞의 문자 1개를 의미 ($가 문자열 끝을 의미, .는 문자 1개 의미)
  • str.replace(/.$/, "") : 문자열 마지막 문자를 ""로 교체하여 제거
let str = "Hello, World,";
let newStr = str.replace(/.$/, "");
console.log(newStr); // "Hello, World"

Output:

Hello, World

4. 마지막 문자가 특정 문자인 경우만 제거

아래 예제는 마지막 문자가 ,일 때 이 문자를 제거하며, 다른 문자인 경우 제거하지 않습니다.

endsWith(str)은 문자열이 str로 끝날 때 true를 리턴하며, 이렇게 특정 문자로 끝나는 경우에만 위에서 사용한 방법으로 마지막 문자열을 제거할 수 있습니다.

let str = "Hello, World!";
if (str.endsWith(",")) {
  str = str.slice(0, -1);
}
console.log(str); // "Hello, World!"

str = "Hello, World,";
if (str.endsWith(",")) {
  str = str.slice(0, -1);
}
console.log(str); // "Hello, World"

Output:

Hello, World!
Hello, World

정규표현식을 이용한 방법

정규표현식의 패턴에 특정 문자를 입력하면, 그 문자로 끝나는 경우에만 replace()""로 변경하여 문자를 제거할 수 있습니다.

let str = "Hello, World!";
str = str.replace(/,$/, "");
console.log(str); // "Hello, World!"

str = "Hello, World,";
str = str.replace(/,$/, "");
console.log(str); // "Hello, World"

Output:

Hello, World!
Hello, World