처음에는 그저 반복문을 돌려 문자가 매칭되면, .replace 메소드를 사용해 대체시켜주려고 생각했다.
그리고 하나가 아닐 수도 있으니 if문과 while을 동시에 써 모든 글자가 대체될 때 멈추는?
그런데 다른 방법이 있을 거 같았음. 그래서 한번에 조건을 만족시키는 모든 대상에 적용시키는 함수가 없나 찾아봄
그리고 정규식이라는 게 있다는 걸 알게됨!
정규식 RegExp
const regex = new RegExp(pattern, flag);
이런식으로 사용하는데,
pattern : 찾고자 하는 패턴 (여기서는 영어로된 단어들이 해당됨)
flag : 다음 세가지로 구성됨
• g(global) : 문자열 내 모든 매칭을 검색
• i (ignore case) : 대소문자를 무시
• m (multiline) : 여러 줄 처리
예시 : /hello/g 는 모든 문자열에서 모든 'hello'를 검색
그래서 적용~!
function solution(s) {
const alp = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
alp.forEach((el,ind) => {
const regex = new RegExp(el, 'g');
s = s.replace(regex, ind);
});
return Number(s);
}
'코딩 테스트 > test_javaScript' 카테고리의 다른 글
[코딩테스트/javaScript] 두 개 뽑아서 더하기 (0) | 2025.01.08 |
---|---|
[코딩테스트/javaScript] k번째 수 (0) | 2025.01.07 |
[코딩테스트/javaScript] 최소직사각형 (0) | 2025.01.05 |
[코딩테스트/javaScript] 크기가 작은 부분 문자열 (0) | 2025.01.04 |
[코딩테스트/javaScript]이상한 문자 만들기 (1) | 2025.01.03 |