isValidIP.js

Codewars 알고리즘 풀이


Problem

  • Write a algorithm that will identify valid IPv4 addresses in dot-decimal format.
    • 점으로 구분된 10진수 형식(dot-decimal format)의 유효한 IPv4 주소를 식별하는 알고리즘을 작성한다.
  • IPs should be considered valid if they consist of four octets, with values between ‘0’ and ‘255’, inclusive.
    • IP는 ‘0’에서 ‘255’ 사이의 값을 포함한다.
    • 4개의 8진수(octet)로 구성되는 경우 유효한 것으로 간주한다.



Solution 01

function isValidIP(str) {
  let arr = str.split('.');
  const validNums = arr.every(i => '' + parseInt(i, 10) === i && i >= 0 && i <= 255);
  const validLength = arr.length === 4;
  
  return validNums && validLength;
}

isValidIP('');             // false
isValidIP('0.0.0.0');      // true
isValidIP('0.0.0.0.0');    // false
isValidIP('0.0.0.256');    // false
isValidIP('192.168.0.1');  // true
isValidIP('a.b.c.d');      // false
isValidIP('01.02.03.04');  // false
isValidIP(' 1. 2.3 .4 ');  // false


Solution 02

function isValidIP(str) {
  return require('net').isIPv4(str);
}

isValidIP('');             // false
isValidIP('0.0.0.0');      // true
isValidIP('0.0.0.0.0');    // false
isValidIP('0.0.0.256');    // false
isValidIP('192.168.0.1');  // true
isValidIP('a.b.c.d');      // false
isValidIP('01.02.03.04');  // false
isValidIP(' 1. 2.3 .4 ');  // false