isDigit.js (8kyu 90)
Codewars 알고리즘 풀이
Problem
- Implement isDigit(str), which should return true if given object is a digit(0-9), false otherwise.
- 주어진 문자열이 0부터 9까지의 숫자라면 true를 반환하고, 그렇지 않으면 false를 반환한다.
Solution 01
function isDigit(str) {
if (str.match(/^[0-9]$/g)) {
return true;
} else {
return false;
}
}
isDigit(''); // false
isDigit('0'); // true
isDigit('a'); // false
isDigit('9'); // true
isDigit('10'); // false
정규표현식 (RegExp)
match()
: 문자열에서 정규식과 일치하는 문자를 검색하고, 배열로 반환한다.
^
: 입력의 시작 부분에 대응
$
: 입력의 끝 부분에 대응
g
: 전역 검색
Solution 02
function isDigit(str) {
return str.match(/^[0-9]$/g) ? true : false;
}
isDigit(''); // false
isDigit('0'); // true
isDigit('a'); // false
isDigit('9'); // true
isDigit('10'); // false
Solution 03
function isDigit(str) {
return /^[0-9]$/g.test(str);
}
isDigit(''); // false
isDigit('0'); // true
isDigit('a'); // false
isDigit('9'); // true
isDigit('10'); // false
정규표현식 (RegExp)
test()
: 대응되는 문자열이 있는지 검색하고, true/false를 반환한다.
Solution 04
function isDigit(str) {
return str.length === 1 && str >= '0' && str <= '9';
}
isDigit(''); // false
isDigit('0'); // true
isDigit('a'); // false
isDigit('9'); // true
isDigit('10'); // false