Вопрос из задачника JS [проверка является ли строка ip адресом]

нужно написать функцию которое делает проверку на числа,все числа должны быть в диапазоне от 0-255, есть 4 варианта для которых код должен быть верным:

  1. на входе:127.0.0.0 , на выходе: true
  2. на входе:214.2.6.0 , на выходе: true
  3. на входе: … , на выходе: false
  4. на входе:127. , на выходе:false

и собственно код которым я пытался решить задачу։

function solution(x) {
	x = x.split('.')
	for (let i = 0; i < x.length; i++) {
		if (x[i] >= 0 && x[i] <= 255) {
			return true
		} else if (x[i] == isNaN) {
			return false
		}
	}
}

не получается написать код правильно для всех вариантов, особенно для 3,4 вариантов

Привет!

Вот мой вариант решения твоей задачи.

const NUM_OF_ADDRESS_PARTS = 4;
function solution(address){

  let addrParts = address.split('.')
  // Проверяем сколько у нас частей IP адреса получилось
  // Если не равно 4 возвращаем false   
  if (addrParts.length !== NUM_OF_ADDRESS_PARTS) {
    return false;
  }

  for(let i = 0; i < addrParts.length; i++){

     let currAddrPart = Number(addrParts[i]);

    // Преобразуем очередную часть IP адреса из строки в число
    // Если не удовлетворяет нашим условиям возвращаем false
     if(isNaN(currAddrPart) || currAddrPart < 0 || currAddrPart > 255) {
        return false;
     }
   }

   return true;
}
1 лайк