[javascript] 문자열 바꾸기와 대소문자 변환하기

문자열 바꾸기는 replace() 메서드를 사용합니다.

문자열에서 찾는 문자열을 대상 문자열로 바꿉니다.

단, 처음 나오는 찾는 문자열 1개만 바꿉니다.

문자열 안의 모든 찾는 문자열을 대상 문자열로 바꾸려면 정규식을 함께 조합해서 사용해야 합니다.

문자열 1개 바꾸기

const str1 = 'GOOD MORNING, GOOD AFTERNOON, good evening, and good night';
//처음 나오는 찾는 문자열을 대상 문자열로 변경합니다.
console.log(str1.replace('good', 'bad')); // 'GOOD MORNING, GOOD AFTERNOON, bad evening, and good night' 을 반환;

대소문자 구분없는 문자열 바꾸기

문자열 바꾸기를 하다보면 영문 대소문자 구분없이 모두 찾아서 바꿔야 하는 경우가 있습니다.

이런 경우 문자열 대소문자 변환을 먼저 한 후 문자열 바꾸기를 하는 방법도 있지만, 정규식을 이용하면 대소문자 변환한 중간 문자열을 생성하지 않고 문자열 바꾸기를 할 수 있습니다.

문자열을 먼저 모두 대소문자로 변환한 후 바꾸기

str1.toLowerCase().replace('찾는문자열','바꿀문자열');
str1.toUpperCase().replace('찾는문자열','바꿀문자열');

처음 일치하는 1개만 바꾸는 방법이고 반환되는 문자열이 대소문자가 변환되기 때문에 이런 방법도 있다는 정도만 알면 됩니다.

const str1 = 'GOOD MORNING, GOOD AFTERNOON, good evening, and good night';
//문자열을 모두 소문자로 변환한 후, 처음 나오는  찾는 문자열을 대상 문자열로 변경합니다.
console.log(str1.toLowerCase().replace('good', 'bad')); // 'bad morning, good afternoon, good evening, and good night' 을 반환;

보통은 아래와 같이 정규식을 사용해str1.replace(/찾는문자열/i, '바꿀문자열');을 사용합니다.

const str1 = 'GOOD MORNING, GOOD AFTERNOON, good evening, and good night';
//대소문자 구분 없이 처음 나오는 찾는 문자열을 대상 문자열로 변경합니다.
console.log(str1.replace(/good/i, 'bad')); // 'bad MORNING, GOOD AFTERNOON, good evening, and good night' 을 반환;

문자열 전체에서 바꾸기

가장 흔하게 사용하고 중요합니다.

정규식에 g를 추가해 문자열 안에 나오는 모든 '찾는문자열' 을 '대상문자열' 로 변환합니다.

const str1 = 'GOOD MORNING, GOOD AFTERNOON, good evening, and good night';
//대소문자 구분 없이 나오는 모든 찾는 문자열을 대상 문자열로 변경합니다.
console.log(str1.replace(/good/gi, 'bad')); // 'bad MORNING, bad AFTERNOON, bad evening, and bad night' 을 반환;

문자열 대소문자 전체 바꾸기

문자열 대소문자 변환은 빈번하게 사용하기 때문에 전용 메서드가 제공됩니다.

  • toLowerCase() : 소문자 변환
  • toUpperCase() : 대문자 변환

사용 방법은 간단하며, 영문자 알파벳에 대해서만 적용됩니다.

var str1 = 'this is the only method! 대소문자 변환 THE END';
console.log(str1.toLowerCase()); // 'this is the only method! 대소문자 변환 the end' 반환
console.log(str1.toUpperCase()); // 'THIS IS THE ONLY METHOD! 대소문자 변환 THE END' 반환