JavaScript에서 문자열에 포함된 모든 대문자를 문자열의 맨 앞으로 이동시키고 싶다면 sort() 메서드와 정규 표현식 /[A-Z]/를 함께 활용하면 간단하게 해결할 수 있습니다.
예제 문자열
다음과 같은 문자열이 있다고 가정해 보겠습니다.
my name is JOHN SMITH
해결 방법
문자열을 개별 문자 배열로 변환한 뒤, sort() 메서드와 대문자를 검사하는 정규 표현식을 사용하여 대문자를 앞쪽으로 정렬합니다.
var moveAllCapitalLettersAtTheBeginning = [...' my name is JOHN SMITH ']
.sort((value1, value2) =>
/[A-Z]/.test(value1) ? /[A-Z]/.test(value2) ? 0 : -1 : 0).join(' ');
console.log("After moving the all capital letters at the beginning=");
console.log(moveAllCapitalLettersAtTheBeginning);코드 설명
- 스프레드 연산자(
[...])를 사용해 문자열을 개별 문자 배열로 분리합니다. sort()의 콜백 함수에서 정규 표현식/[A-Z]/로 각 문자가 대문자인지 검사합니다.- 첫 번째 값이 대문자이고 두 번째 값이 아니라면
-1을 반환해 대문자를 앞으로 보냅니다. - 마지막으로
join(' ')으로 배열을 다시 하나의 문자열로 합칩니다.
프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 사용합니다.
node fileName.js
여기서는 파일 이름이 demo199.js라고 가정합니다.
실행 결과
프로그램을 실행하면 아래와 같은 출력 결과를 확인할 수 있습니다.
PS C:\Users\Amit\javascript-code> node demo199.js After moving the all capital letters at the beginning= J O H N S M I T H m y n a m e i s
출력 결과에서 볼 수 있듯이, 원래 문자열 뒤쪽에 있던 대문자 'JOHN SMITH'가 모두 문자열의 시작 부분으로 이동한 것을 확인할 수 있습니다.