const regex = /[a-zA-Z]*:\/\/[a-z\.@]+\.[a-z]{2,5}[\/]?\S*/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('[a-zA-Z]*:\\\/\\\/[a-z\\.@]+\\.[a-z]{2,5}[\\\/]?\\S*', 'gm')
const str = `http://euler.ciens.ucv.ve En este caso solo se indica el servicio y la máquina y dominio. El resto de los parámetros se toman por defecto, el puerto 80, el directorio, el raíz del servidor y el documento por defecto de ese directorio.
http://euler.ciens.ucv.ve/Admision/ingresos.htm Este URL está más completo, en este caso se accede al fichero ingresos.html que se encuentra en el directorio Admisión del servidor del WWW, euler.ciens.ucv.ve.
http://euler.ciens.ucv.ve/images Se accederá al fichero por defecto del directorio /images del servidor de la WWW, euler.ciens.ucv.ve
ftp://ftp.ciens.ucv.ve/pub/images/globo.gif En este caso se accederá a un servidor de FTP anónimo, ftp.ciens.ucv.ve por el protocolo FTP y se accederá al fichero globo.gif del directorio de imágenes.
news:neblina.reacciun.ve En este caso se accederá al grupo de news de REACCIUN en el servidor de news definido por defecto en el navegador de la WWW, esta opción solo es soportada por los navegadores más modernos.
mailto://webmaster@euler.ciens.ucv.ve`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions