var urls = ['http://www.starwars.com', 'https://www.starwars.com', 'www.starwars.com', 'foo'];
var result = '';
for(var url of urls) {
result += validUrl(url) + '\n';
}
function validUrl(url) {
if (url.indexOf('https://')==-1 && url.indexOf('http://')==-1) {
url = 'http://' + url
};
var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name and extension
'((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address
'(\\:\\d+)?'+ // port
'(\\/[-a-z\\d%@_.~+&:]*)*'+ // path
'(\\?[;&a-z\\d%@_.,~+&:=-]*)?'+ // query string
'(\\#[-a-z\\d_]*)?#x27;,'i'); // fragment locator
if(!pattern.test(url)) {
console.log('Invalid LAUNCH button URL: ' + url);
} else {
return url;
}
}
result;