вопрос из задачника JS
нужно написать функцию которое делает проверку на числа,все числа должны быть в диапазоне от 0-255, есть 4 варианта для которых код должен быть верным:
на входе:127.0.0.0 , на выходе: true
на входе:214.2.6.0 , на выходе: true
на входе: … , на выходе: false
на входе: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 вариантов
Ответы (5 шт):
const hosts = [
'127.0.0.0',
'214.2.6.0',
'256.2.6.0',
'000'
]
function solution(h){
let spl = h.split('.')
return (
spl.length === 4 &&
spl.every((v) => /^[0-9]{1,3}$/.test(v) && Number.parseInt(v) < 256)
)
}
hosts.forEach((h) => {
console.log(solution(h))
})
нужно написать функцию которое делает проверку на числа,все числа должны быть в диапазоне от 0-255, есть 4 варианта для которых код должен быть верным:
Вот такой вариант, может работать так как вам нужно.
function solution(y) {
var x = y.split('.')
for (let i = 0; i < x.length; i++) {
if (x[i] == isNaN(x) || x[i] == '') {
return false
}
}
return true
}
console.log(solution('127.0.0.0')) // , на выходе: true
console.log(solution('214.2.6.0')) // , на выходе: true
console.log(solution('...')) //, на выходе: false
console.log(solution('127.')) ///, на выходе:false
function solution(x){
x = x.split('.');
let z = 0;
for(let i=0;i<x.length;i++){
if(x[i]>=0&& x[i]<=255){
z += 1;
}
}
if (z == 4){
return true
} else {
return false
}
}
console.log(solution('127.0.0.0'));
console.log(solution('214.2.6.0'));
console.log(solution('…'));
console.log(solution('127. '));
const ipSet = [
'127.0.0.0',
'214.2.6.0',
'..r.',
'127.',
'999.0.0.0',
'',
'...',
'Ooo.Eee.!.00',
]
Алгоритм проверки с быстрым выходом если строка IP не полная, также быстрый выход по первой же невалидной цифре:
function ipIsValid(row) {
const ipArr = row.split(".");
if (ipArr.length !== 4) return false;
return !ipArr.some(item => isNaN(parseInt(item)) || +item < 0 || +item > 255);
}
Проверка:
ipSet.forEach( ipRow => console.log(ipIsValid(ipRow), ipRow) );
Результат:
true 127.0.0.0
true 214.2.6.0
false ..r.
false 127.
false 999.0.0.0
false
false ...
false Ooo.Eee.!.00
function solution(x) {
x = x.split('.');
return x.every(index => index >= 0 && index <= 255 && index !== '')
}
console.log(solution('127.0.0.0'));
console.log(solution('214.2.6.0'));
console.log(solution('…'));
console.log(solution('127.'));