Sé que esto se ha preguntado miles de veces antes (disculpas), pero al buscar SO/Google, etc. aún no he recibido una respuesta definitiva.Javascript: extrae las URL de la cadena (inc. Querystring) y devuelve la matriz
Básicamente, necesito una función JS que cuando pasa una cadena, identifica & extrae todas las URL basadas en una expresión regular, devolviendo una matriz de todas encontradas. por ejemplo:
function findUrls(searchText){
var regex=???
result= searchText.match(regex);
if(result){return result;}else{return false;}
}
La función debería poder detectar y devolver cualquier URL posible. Soy consciente de las dificultades/problemas inherentes con esto (paréntesis de cierre, etc.), así que tengo la sensación de que el proceso debe ser:
Divida la cadena (searchText
) en distintas secciones de inicio/finalización con nada, una el espacio o el carro vuelven a ambos lados, lo que da como resultado fragmentos de contenido distintos, por ejemplo haz una división
Para cada fragmento de contenido resultante de la división, vea si se ajusta a la lógica de una URL de cualquier construcción, es decir, si contiene un período inmediatamente seguido del texto (la única regla constante para calificar una URL potencial).
La expresión regular debería ver si el período es seguido inmediatamente por otro texto, del tipo permitido para una cadena de consulta tld, estructura de directorios & y precedido por texto del tipo permitido para una URL.
Soy consciente de que pueden producirse falsos positivos, sin embargo, cualquier valor devuelto se comprobará con una llamada a la misma URL, por lo que se puede ignorar. Las otras funciones que he encontrado a menudo tampoco devuelven la cadena de consulta de URL, si está presente.
Desde un bloque de texto, la función debería poder devolver cualquier tipo de URL, ¡incluso si eso significa identificar will.i.am como válido!
por ejemplo. http://www.google.com, google.com, www.google.com, http://google.com, ftp.google.com, https: // etc ... y cualquier derivación del mismo con una cadena de consulta debe ser devuelto ...
muchas gracias, de nuevo disculpas si esto existe en otras partes de SO pero mis búsquedas havent devolvió ..
Posible duplicado: http://stackoverflow.com/questions/1986121/match-all-urls-in-string-and-return-in- array-in-javascript – fonini
La gente debería dejar de prefijar la variable JS con '$' ... ¡JS no es PHP! – helpermethod
Lo siento, tuve mi cabeza en PHP todo el día, se eliminará! – SW4