[Javascript] 문자열에서 숫자만 추출
April 06, 2024
다양한 방법으로 문자열에서 숫자만 추출할 수 있습니다. 예제와 함께 알아보겠습니다.
1. 정규표현식으로 숫자 추출
replace(pattern, repl)
은 문자열에서 패턴에 일치하는 문자열을 찾고 repl로 교체합니다.
\D
: 숫자가 아닌 문자로,[^0-9]
와 동일한 의미의 정규식str.replace(/\D/g, "")
: 숫자가 아닌 문자를 ""으로 대체하여 제거
아래와 같이 문자열에서 숫자가 아닌 문자를 제거하여, 숫자만 추출할 수 있습니다.
let str = "abc123def456ghi";
let numbersOnly = str.replace(/\D/g, "");
console.log(numbersOnly);
Output:
123456
2. filter()로 숫자 추출
str.split('')
는 문자열을 문자 단위로 분리하며, 각 문자 별로 filter(함수)
를 수행합니다. 함수의 결과가 true인 문자들만 모아서 join('')
으로 연결합니다.
- isNaN(char) : is Not a Number의 의미로, 문자 char가 숫자로 변환 가능한 경우 true를 리턴
filter(char => !isNaN(char))
: char가 숫자인 경우만 모아서 배열로 리턴
아래와 같이 문자열에서 숫자만 추출할 수 있습니다.
let str = "abc123def456ghi";
let numbersOnly = str.split('').filter(char => !isNaN(char)).join('');
console.log(numbersOnly);
Output:
123456
3. for문으로 숫자 추출
isNaN()
과 for문을 사용하여 아래와 같이 문자열에서 숫자만 추출할 수 있습니다.
isNaN(char)
: is Not a Number의 의미로, 문자 char가 숫자로 변환 가능한 경우 true를 리턴
let str = "abc123def456ghi";
let numbersOnly = "";
for (let i = 0; i < str.length; i++) {
if (!isNaN(str[i])) {
numbersOnly += str[i];
}
}
console.log(numbersOnly);
Output:
123456