문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_string의 길이 ≤ 1,000
- 1 ≤ my_string 안의 자연수 ≤ 1000
- 연속된 수는 하나의 숫자로 간주합니다.
- 000123과 같이 0이 선행하는 경우는 없습니다.
- 문자열에 자연수가 없는 경우 0을 return 해주세요.
풀이
const solution = (my_string) =>
my_string
.split(/[a-zA-Z]/g)
.reduce((acc, cur) => return acc += +cur, 0);
split() 매서드를 정규식과 같이 활용하면 문자를 제외하고 잘라낼 수 있다.
replace()를 사용하면 붙어있는 숫자가 판단이 안되므로, 정규식을 이용한 뒤,
나온 배열에서 숫자인것들만 reduce() 매서드로 더해주면 끝.
정규식은 [a-zA-Z]로 썼지만, /[A-z]/g 혹은 /\D/g 혹은 /[a-z]/gi 등으로도 쓸 수 있다.