반응형
보통 이름이나 전화번호 같은 개인정보를 이렇게 처리한다.
'홍길동'이 실제 데이터이면 '홍*동' 같은 식으로 보여주는 것이다. 서버에서 처리해야 하는 것이 당연하지만, 경우에 따라 프론트에서 처리해도 무방한 데이터도 있다. 그럴때는 이렇게 변환해주면 된다.
n번째 문자만 치환하는 콛
아래 코드는 3자리 이상 문자열일 때, 2번째 문자만 '*'로 변환하는 예제이다. 코드를 잘 살펴보면 응용해서 사용할 수 있을 것이다.
const replaceSecondChar = (str) => {
return str.length >= 3 ? str.replace(/(?<=.{1}).(?=.{1,2})/, '*') : str;
};
console.log(replaceSecondChar('abc')); // Output: 'a*c'
console.log(replaceSecondChar('abcd')); // Output: 'a*cd'
console.log(replaceSecondChar('독거노인')); // Output: '독*노인'
console.log(replaceSecondChar('a')); // Output: 'a'
하나 더 보자. 아래 예제는 2~4자리를 치환한다.
const replaceMiddleChars = (str) => {
return str.length >= 4 ? str.replace(/(?<=.{1}).{2}(?=.{1})/, '**') : str;
};
console.log(replaceMiddleChars('abcdef')); // Output: 'a**def'
console.log(replaceMiddleChars('abcd')); // Output: 'a**d'
console.log(replaceMiddleChars('독거노인')); // Output: '독**노인'
console.log(replaceMiddleChars('ab')); // Output: 'ab'
정규식에서는 positive lookbehind (?<=.{1}) 을 사용하여 2에서 4번째 문자 앞의 한 글자와 매치되는 것을, positive lookahead (?=.{1}) 을 사용하여 2에서 4번째 문자 뒤의 한 글자와 매치되는 것을 찾는다. 그 사이에 있는 .{2} 는 정확히 2개의 문자, 즉 2번째에서 4번째 문자를 매치합니다.
반응형
'프로그래밍 > Javascript' 카테고리의 다른 글
jQuery UI sortable을 사용한 드래그하여 목록 순서 변경, handle 옵션으로 특정 버튼만 적용할 때 유의사항 (0) | 2022.08.05 |
---|---|
ckeditor / toolbar 없애기 (0) | 2020.07.28 |
HTML5 / input type="number" maxlength 키보드 입력 제한하기 (0) | 2020.07.23 |
부트스트랩 기간 달력 시작/종료일 제한하기 (Bootstrap datepicker, daterange) (2) | 2020.07.21 |
같은 element에 등록된 여러 이벤트 리스너 호출을 막는 stopImmediatePropagation() (0) | 2020.07.08 |