https://www.codewars.com/kata/525f50e3b73515a6db000b83
Codewars - Achieve mastery through coding practice and developer mentorship
A coding practice website for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages!
www.codewars.com
DESCRIPTION:
Write a function that accepts an array of 10 integers (between 0 and 9), that returns a string of those numbers in the form of a phone number.
Example
createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) // => returns "(123) 456-7890"
The returned format must be correct in order to complete this challenge.
Don't forget the space after the closing parentheses!
설명:
10개의 정수(0부터 9 사이)로 구성된 배열을 받아 전화번호 형식의 문자열로 반환하는 함수를 작성하세요.
예시
createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) // => returns "(123) 456-7890"
이 챌린지를 완성하려면 정확한 형식을 반환해야 합니다.
괄호로 닫은 다음 공백을 넣는 것을 잊지 마세요!
풀이
정규식을 이용해서 숫자를 3, 3, 4 자리로 구분하고 캡쳐링 그룹(Capturing group)으로 형식을 만들어주어 replace로 바꿔주었다.
코드
function createPhoneNumber(numbers){
return numbers.join('').replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3");
}
다른 사람의 좋았던 풀이
function createPhoneNumber(numbers){
var format = "(xxx) xxx-xxxx";
for(var i = 0; i < numbers.length; i++)
{
format = format.replace('x', numbers[i]);
}
return format;
}
----------------------------------------------------------------------
function createPhoneNumber(numbers){
numbers = numbers.join('');
return '(' + numbers.substring(0, 3) + ') '
+ numbers.substring(3, 6)
+ '-'
+ numbers.substring(6);
}
----------------------------------------------------------------------
function createPhoneNumber(numbers){
return numbers.join('').replace(/(...)(...)(.*)/, '($1) $2-$3');
}
----------------------------------------------------------------------
function createPhoneNumber(numbers){
return numbers.reduce((p,c) => p.replace('x',c), "(xxx) xxx-xxxx");
}
참고
http://www.gisdeveloper.co.kr/?p=12281
Javascript, 전화번호 형식으로 변경하는 함수 – GIS Developer
사용자가 원하는 형식으로 전화를 입력했을때 정해진 형식(xx-xxx-xxxx)으로 변경해주는 함수입니다. const formatPhoneNumber = (input) => { const cleanInput = input.replaceAll(/[^0-9]/g, ""); let result = ""; const length = cl
www.gisdeveloper.co.kr
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Quantifiers
Quantifiers - JavaScript | MDN
Quantifiers indicate numbers of characters or expressions to match.
developer.mozilla.org
https://javascript.info/regexp-groups#capturing-groups-in-replacement
Capturing groups
javascript.info
'알고리즘 > Codewars' 카테고리의 다른 글
[Codewars] Sum of positive (8 kyu) / JavaScript (0) | 2022.11.10 |
---|---|
[Codewars] Get the Middle Character (7 kyu) / JavaScript (0) | 2022.11.09 |
[Codewars] Sum of Digits / Digital Root (6 kyu) / JavaScript (0) | 2022.11.07 |
[Codewars] Stop gninnipS My sdroW! (6 kyu) / JavaScript (0) | 2022.11.05 |
[Codewars] If you can't sleep, just count sheep!! (8 kyu) / JavaScript (0) | 2022.11.04 |
댓글