Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 앞부분을 별표 4개로 가리고 마지막 3자리만 표시하는 방법

다음과 같은 값들이 있다고 가정해 보겠습니다.

'6778922'
'76633 56 1443'
'8888 4532 3232 9999'

여기서 목표는 앞부분의 문자들을 별표 4개(****)로 대체하고, 마지막 3자리만 화면에 표시하는 것입니다. 이런 기법은 카드 번호나 계좌번호처럼 민감한 정보를 일부만 노출해야 할 때 실무에서 자주 활용됩니다.

원하는 출력 결과는 다음과 같습니다.

**** 922
**** 443
**** 999

replace()와 정규식으로 구현하기

이런 조건을 처리할 때는 replace() 메서드를 사용하고, 그 안에 정규식(regex)을 함께 설정하면 됩니다.

핵심 정규식인 /.+(.{3})$/의 동작 방식을 살펴보면 다음과 같습니다.

  • .+ : 임의의 문자를 하나 이상 최대한 많이 매칭합니다(공백 포함).
  • (.{3})$ : 문자열 끝($)에 위치한 정확히 3개의 문자를 캡처 그룹으로 저장합니다.
  • $1 : 치환 문자열에서 캡처 그룹, 즉 마지막 3자리를 참조합니다.

결국 문자열에서 마지막 3자리를 제외한 나머지 전체가 "**** "로 교체되고, 그 뒤에 마지막 3자리가 붙게 됩니다.

예제 코드

const hideDataWithDot = value => value.replace(/.+(.{3})$/, "**** $1");
console.log(hideDataWithDot('6778922'));
console.log(hideDataWithDot('76633 56 1443'));
console.log(hideDataWithDot('8888 4532 3232 9999'));

프로그램 실행 방법

위 프로그램을 실행하려면 터미널에서 다음 명령어를 입력합니다.

node fileName.js

여기서는 파일 이름이 demo236.js라고 가정하겠습니다.

출력 결과

실행 결과는 다음과 같습니다.

PS C:\Users\Amit\javascript-code> node demo236.js
**** 922
**** 443
**** 999

참고로 이 정규식은 문자열 길이가 최소 4자 이상일 때만 동작합니다. 공백이 포함된 문자열도 문제없이 처리되므로, 다양한 형식의 데이터를 손쉽게 마스킹할 수 있습니다.