Ciao a tutti,
ho un problema che solo qualche buon'anima qui può aiutarmi a risolvere.
Ho un form con un unico campo input text nel quale l'utente deve inserire l'URL nel formato hostname ovvero: google.com oppure apple.com
Dovrei implementare una funzione javascript che controlli che nell'URL non ci sia
- http//
- https//
- http//www.
- https//www.
Su Stackoverflow (https://stackoverflow.com/questions/...o-validate-url) ho trovato questo codice
codice:
console.log('http://www.google-com.123.com', validateUrl('http://www.google-com.123.com')); // true
console.log('http://www.google-com.123', validateUrl('http://www.google-com.123')); // false
console.log('https://www.google-com.com', validateUrl('https://www.google-com.com')); // true
console.log('http://google-com.com', validateUrl('http://google-com.com')); // true
console.log('http://google.com', validateUrl('http://google.com')); //true
console.log('google.com', validateUrl('google.com')); //false
console.log('http://www.gfh.', validateUrl('http://www.gfh.')); //false
console.log('http://www.gfh.c', validateUrl('http://www.gfh.c')); //false
console.log('http://www.gfh:800000', validateUrl('http://www.gfh:800000')); //false
console.log('www.google.com ', validateUrl('www.google.com ')); //false
console.log('http://google', validateUrl('http://google')); //false
console.log('//cdnblabla.cloudfront.net/css/app.css', validateUrl('//cdnblabla.cloudfront.net/css/app.css')); //true
function validateUrl(value) {
return /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(value);
}
C'è qualcuno che sa come modificare la regular expression per far in modo che solo la forma nomesito.com sia valida e passi il controllo ?