-
문자열과 숫자에 접근하는 방법들3 : 정규표현식JavaScript 2022. 9. 28. 22:56
function solution(phone_number) { var answer = ''; answer = phone_number.slice(0,-4).replace(/[0-9]/gi,'*') + phone_number.slice(-4); return answer; } //let phone_number = "01033334444" //"*******4444" 출력 //앞에서부터 뒤에서 4자리 전까지 자르고, *로 replace 하고, 뒤 4자리 다시 잘라서 붙임.
기초적인 사례. 플래그가 무엇인지도 몰랐기 때문에, 굳이 i 플래그도 써놓은 모습이다.
function hide_numbers(s) { return s.replace(/\d(?=\d{4})/g, "*"); } // 아래는 테스트로 출력해 보기 위한 코드입니다. console.log("결과 : " + hide_numbers('01033334444'));
더 나아간 사례.
digit 4개 앞쪽일치 숫자. 즉, 뒤의 숫자4개 빼고 그 앞으로 숫자들 일치.
그걸 *로 대체.
(?=) 앞쪽 일치(Lookahead), /ab(?=c)/ (?!) 부정 앞쪽 일치(Negative Lookahead), /ab(?!c)/
function solution(s) { if (s.length == 4 || s.length == 6){ s+="a"; return s.match(/\D/gi).length == 1 ? true : false; } else { return false; } }
더욱 기본적인 사례.
non-digit 모조리 매치시킨 것.
다만, s+="a" 를 위에 한줄 추가한 것은 예외처리 때문.
match()는 일치하는 문자열이 없을 때 null값을 반환하고, null의 길이를 재느라 런타임 오류가 발생하기 때문.
function alpha_string46(s){ var regex = /^\d{6}$|^\d{4}$/; return regex.test(s); } // 아래는 테스트로 출력해 보기 위한 코드입니다. console.log( alpha_string46("a234") );
아예 모조리 정규식으로 표현한 사례.
시작에서 끝까지 digit6자리 또는 시작에서 끝까지 digit 4자리
패턴과 일치하는 부분 문자열이 하나라도 있는 경우 true, 그렇지 않으면 false가 반환.
let str = "I love JavaScript"; let regexp = /LOVE/i; alert( regexp.test(str) ); // true
'JavaScript' 카테고리의 다른 글
계산된 프로퍼티 computed property (0) 2022.09.30 생성자 함수 (0) 2022.09.30 문자열과 숫자에 접근하는 방법들 2 : sort() (0) 2022.09.28 배열에 접근하는 방법들2 : set(), map(), 배열의 중복제거 (0) 2022.09.28 조건을 거는 방법들 1 : while, do while 등 (0) 2022.09.28