JavaScript 챌린지 #JS-176: 문자열에서 숫자 추출 및 합계 계산
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- JavaScript 초보자 및 중급 개발자
- 문자열 처리, 정규표현식, 배열 조작에 관심 있는 개발자
- 난이도: 중급 (정규표현식 이해 필요)
핵심 요약
- 문자열에서 숫자 추출:
/\d+/g
정규표현식을 사용하여 숫자 패턴 매칭 - 숫자 합계 계산:
Array.prototype.reduce()
로 추출된 숫자 배열 합산 - 실용성:
parseInt()
대신Number()
또는+
연산자로 타입 변환 권장
섹션별 세부 요약
- 문제 정의
- 문자열 내 숫자만 추출하고, 그 합계를 계산하는 기능 구현
- 예:
"abc123def456"
→[123, 456]
→ 합계579
- 정규표현식 사용법
/\d+/g
패턴으로 연속된 숫자 추출match()
메서드로 배열 반환 (null 처리 필요)- 예:
"a1b2c3".match(/\d+/g)
→["1", "2", "3"]
- 합계 계산 로직
map(Number)
으로 문자열 배열 → 숫자 배열 변환reduce((acc, curr) => acc + curr, 0)
으로 누적합 계산- 예:
[1, 2, 3].reduce((a, b) => a + b, 0)
→6
- 예외 처리
- 숫자가 없는 경우
null
반환 처리 try-catch
사용 또는if
조건문으로 예외 대비NaN
처리:Number.isNaN()
검증
결론
- 문자열에서 숫자 추출 시
/\d+/g
정규표현식과reduce()
조합 사용 권장 Number()
또는+
연산자로 타입 변환하여parseInt()
대체- 예외 처리를 통해
null
또는NaN
값에 대한 로직 추가 필요