웹 개발을 하다보면 문자열의 마지막 몇글자만 *처리할 때가 있을 것이다.
예를들어 0101234**** 이런식으로 말이다.
어떻게 처리를 할까?
반복문을 역시 써야하는걸까? 아니면 다른 방법이 있는걸까?
필자도 뭐가 더 나은 방법인지 고민 했지만 정규식으로 처리할 수 있을 것 같아서 찾아보았다.
// \d [0-9]와 동일하다.
// x(?=y)
// y가 뒤따라오는 x에만 대응됩니다. lookahead라고 불립니다.
// \d(?=\d{4})를 번역하면 [0-9] 뒤에 또 숫자가 4자리가 더 있을 시.
// /g 맨 뒤의 g는 전역 검색을 뜻한다.
function maskingNumbers(number) {
return number.replace(/\d(?=\d{4})/g, "*");
}
위의 코드는 뒤의 숫자 4자리를 제외한 문자를 *처리하는 코드이다.
정규식을 사용하니 엄청 간단하지 않은가?
비록 위의 정규식은 숫자 문자에만 해당되는 것이지만 찾아보면 훨씬 많은 경우에 대응할 수 있을 것이다.