https://www.codewars.com/kata/55f8a9c06c018a0d6e000132
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:
ATM machines allow 4 or 6 digit PIN codes and PIN codes cannot contain anything but exactly 4 digits or exactly 6 digits.
If the function is passed a valid PIN string, return true, else return false.
Examples (Input --> Output)
"1234" --> true
"12345" --> false
"a234" --> false
설명:
ATM 기계는 4자리 또는 6자리 PIN 코드를 허용하며 정확히 4자리 또는 6자리 숫자 외에는 어떤 것도 포함되지 않습니다.
함수에 유효한 PIN 문자열이 전달되면 true를 아니면 false를 반환하세요.
예시 (입력 --> 출력)
"1234" --> true
"12345" --> false
"a234" --> false
풀이
입력받은 문자열의 길이가 4 또는 6이고 문자열에서 숫자를 모두 제거한 결과가 입력받은 문자열과 같다면 true를 그렇지 않다면 false를 반환하였다.
코드
function validatePIN (pin) {
const reg = /[^0-9]/g;
const num = pin.replace(reg, '');
if((pin.length === 4 || pin.length === 6) && pin === num) return true;
return false;
}
다른 사람의 좋았던 풀이
function validatePIN(pin) {
return /^(\d{4}|\d{6})$/.test(pin)
}
참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test
RegExp.prototype.test() - JavaScript | MDN
test() 메서드는 주어진 문자열이 정규 표현식을 만족하는지 판별하고, 그 여부를 true 또는 false로 반환합니다.
developer.mozilla.org
'알고리즘 > Codewars' 카테고리의 다른 글
[Codewars] Detect Pangram (6 kyu) / JavaScript (0) | 2022.12.22 |
---|---|
[Codewars] Is this a triangle? (7 kyu) / JavaScript (0) | 2022.12.21 |
[Codewars] Printer Errors (7 kyu) / JavaScript (0) | 2022.12.19 |
[Codewars] Growth of a Population (7 kyu) / JavaScript (0) | 2022.12.17 |
[Codewars] Find the next perfect square! (7 kyu) / JavaScript (0) | 2022.12.16 |
댓글