function isValidIP(ip){ let tabIP = ip.split(".") if (tabIP.length == 4){ for (let i=0; i<tabIP.length;i++){ if(1*tabIP[i]<0 || 1*tabIP[i]>255) return false } return true } return false }
2 years ago (edited) | 1
Je pense que travailler avec les expressions régulières demeure le plus approprié. Mais pour fournir une solution différente: function isValidIP(ip){ return ip.split('.').length==4 && (ip.split('.').filter(num =>isNaN(num) || num==""||num.includes(' ') || (num.length>3) || num <0 || num>255)).length==0; }
2 years ago | 1
function isValidIp(ip: string): boolean { const regex = new RegExp("^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"); return regex.test(ip); }
2 years ago | 3
Je préfère également utiliser une (simple & lisible) expression régulière : function isValidIP(ip) { const regex = /^(\d{1,3}\.){3}\d{1,3}$/; return regex.test(ip); }
2 years ago (edited) | 1
function isValidIP(ip){ const tab = ip.split('.'); if(tab.length !==4) return false; for(let i =0; i<tab.length;i++){ const num = parseInt(tab[i],10); if(num <0 || num >255 || isNaN(num)) return false; } return true; }
2 years ago | 0
function isValidIP(ip){ const tab = ip.split('.'); if(tab.length !==4) return false; for(let i =0; i<tab.length;i++){ if(tab[i] < 0 || tab[i] >255) return false; } return true; }
2 years ago | 0
Ma proposition : function isValid(ip) { let regex = /^(?<octet1>\d{1,3})\.(?<octet2>\d{1,3})\.(?<octet3>\d{1,3})\.(?<octet4>\d{1,3})$/; let match = regex.exec(ip); if (match) { return Object.values(match.groups).every(octet => { return octet >=0 && octet <=255; }); } else { return false; } }
2 years ago | 0
function isValidIP(ip){ const tab = ip.split('.'); if(tab.length !==4) return false; for(let i =0; i<tab.length;i++){ if(tab[i].length<=3 && tab[i].length>=0){ const num = parseInt(tab[i],10); if(num < 0 || num >255 || isNaN(num )) return false; } else return false; } return true; }
2 years ago | 0
function isValidIP(ip) { return ip.split('.').length == 4 && ip.split('.').every(n => +n >= 0 && +n <= 255 && n.length <= 3); }
2 years ago
| 2
function isValid(ip){ return ip .split(".") .map(carac => Number.parseInt(carac)) .every(number => number>=0 && number<=255) }
2 years ago | 0
Je vois ici beaucoup de code en regex mais en terme de performance ca casse le mythe les regex, voici pour exemple : ip = '255.0.0.233'; function isIp(ip){ let a = ip.split('.'); if(a.length === 4) return false; return a.filter(e => e >= 0 && e <= 255).length === 4; } const isValidIP = (ip) => /^(\d{1,3}\.){3}\d{1,3}$/.test(ip) && ip.split('.').every((octet) => octet >= 0 && octet <= 255); function getTimeAfterRepeat(fn, e){ d = new Date(); for(let i = 0; i < 1000000; i++){ fn(e); } return new Date() - d; } results = { arrayFunction : getTimeAfterRepeat(isIp, ip), regex : getTimeAfterRepeat(isValidIP, ip) }; //=> {arrayFunction: 35, regex: 83}
1 year ago
| 0
Voici ma proposition : return ip.split(".").length == 4 && ip.split(".").every(e => e>=0 && e<=255);
2 years ago | 0
Codeur Senior
CHALLENGE JavaScript #58 (Débutant)
Chaque Lundi, je vous propose le "5 min JavaScript Challenge"...
J'avais l'habitude de faire l'exercice avec les développeurs qui me suivent par email...
mais maintenant je vais proposer l'exercice à vous aussi, sur YouTube.
PERSONNE ne sera épargné... 😏
La seule règle ?
Vous avez 5 minutes MAX pour en venir à bout... sinon il va falloir revoir les fondamentaux.
Où réaliser le challenge ?
Dans la console de votre navigateur, tout simplement !
METTEZ VOTRE MEILLEURE RÉPONSE DANS LES COMMENTAIRES 👇
2 years ago | [YT] | 31