[콭] 숫자 문자열과 영단어 : 정규식

강원지·2023년 1월 31일
0

코테 다시보기

목록 보기
7/22

코딩테스트 연습
2021 카카오 채용연계형 인턴십
숫자 문자열과 영단어

문제

주어진 문자열에서 string으로 이루어진 숫자를 Number 타입으로 바꿔라.

로직

정규식과 replace함수로 해당 숫자를 찾아 바꿔줌.

코드

function solution(s) {
    s = s.replace(/zero/g, 0)
    .replace(/one/g, 1)
    .replace(/two/g, 2)
    .replace(/three/g, 3)
    .replace(/four/g, 4)
    .replace(/five/g, 5)
    .replace(/six/g, 6)
    .replace(/seven/g, 7)
    .replace(/eight/g, 8)
    .replace(/nine/g, 9)
  
    return s*1;
}

헤맨 부분

string 메소드를 잘못 사용해서 시간을 많이 허비했다.
s.replace(s.match(/zero/g), 0);

정규식

^ : 문자열의 시작을 의미
[ㄱ-ㅎ|가-힣|a-z|A-Z|0-9|] : 한글, 소문자 영어, 대문자 영어, 숫자에 해당하는 문자 1개를 의미
+ : 문자 1개 이상을 의미
$ : 문자열의 끝을 의미
i : 대소문자 노상관
g : 전역
m : 행바뀜 노상관

메소드

regex.test(string) : 해당하는지 T/F검사
regex.exec(string) : 매칭 결과를 배열로 반환, 없으면 null
string.match(regex) : 매칭 결과를 배열로 반환
string.replace(/regex/g,"") : regex에 해당하는 문자를 ""로 변경

한글, 영어, 숫자로만 이루어진 문자

const regex = /^[ㄱ-ㅎ|가-힣|a-z|A-Z|0-9|]+$/;//처음부터 끝까지

let str = "aaaa123";
console.log(regex.test(str));

0개의 댓글