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