프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
phone_number는 길이 4 이상, 20이하인 문자열입니다.
왜 풀지 못하였는가...
function solution(phone_number) {
var answer = ' ';
// 번호 뒷 4자리 가져오기
let back = phone_number.substr(-4,4);
console.log(back);
// 번호 뒷 4자리를 제외한 앞부분 가져오가
let front = phone_number.substring(0,phone_number.length-4);
console.log(front);
// 뒷 4자리 제외한 앞부분을 * 문자로 변환해주기
let result = front.replace(/[0-9]/g,'*');
console.log(result);
// * 문자로 변환해 준 부분과 뒷자리를 더해서 값을 구하기
answer = result + back;
return answer;
}
back
변수를 선언한 다음, .substr()
함수를 이용하여 뒷 번호 4자리를 가져온다.front
변수 선언 후, .substring()
함수를 이용하여 처음부터 뒤에 4자리 제외하고 그 앞부분까지 번호를 가져온다.result
변수 선언히고 front라는 변수에 저장된 숫자들을 .replace()
를 사용하여 *
로 바꿔준다.
let str = '안녕하세요';
let result = str.substr(0,2);
// 출력: '안녕'
let result2 = str.substr(2,3);
// 출력: '하세요'
let result3 = str.substr(2);
// 출력: '하세요'
let str = '안녕하세요`;
let result = str.substring(0,2);
// 출력: '안녕'
let result2 = str.substring(2,5);
// 출력: '하세요'
let result3 = str.substring(2,4);
// 출력: '하세'
let result4 = str.substring(3);
// 출력: '세요'
let str = '안녕하세요`;
let result = str.substring(-4,4); //str.substring(0,4)
// 출력: '안녕하세'
let result2 = str.substring(2,-1); //str.substring(0,2);
// 출력: '안녕'
function solution(p) {
var result = '*'.repeat(p.length - 4) + p.slice(-4);
return result;
}
slice()함수는 문자열을 뒤에서부터 자르는 p.slice(-4) 뒤에서 4번째 자리부터 끝까지 문자열을 자르라는 의미이다.