So che questo è stato chiesto migliaia di volte prima (scuse), ma cercando SO/Google ecc. Devo ancora ottenere una risposta definitiva.Javascript: estrae URL da string (inc. Querystring) e restituisce array
Fondamentalmente, ho bisogno di una funzione JS che quando viene passata una stringa, identifica & estrae tutti gli URL in base a un'espressione regolare, restituendo un array di tutti i trovati. ad esempio:
function findUrls(searchText){
var regex=???
result= searchText.match(regex);
if(result){return result;}else{return false;}
}
La funzione deve essere in grado di rilevare e restituire eventuali potenziali URL. Sono consapevole delle difficoltà intrinseche/emette con questo (parentesi chiusa ecc.), Quindi ho la sensazione che il processo debba essere:
Dividere la stringa (searchText
) in sezioni distinte di inizio/fine) con nessuno dei due, un spazio o carrello restituiscono entrambi i lati di esso, risultando in blocchi di contenuto distinti, ad es fare una divisione.
Per ogni porzione di contenuto risultante dalla divisione, vedere se si adatta alla logica per un URL di qualsiasi costruzione, vale a dire, contiene un periodo immediatamente seguito il testo (l'unica regola costante per qualificare un potenziale URL).
L'espressione regolare deve verificare se il punto è immediatamente seguito da altro testo, del tipo consentito per una stringa di query tld, della struttura di directory & e preceduto dal testo del tipo consentito per un URL.
Sono consapevole che potrebbero verificarsi falsi positivi, tuttavia tutti i valori restituiti verranno quindi verificati con una chiamata all'URL stesso, quindi questo può essere ignorato. Le altre funzioni che ho trovato spesso non restituiscono anche la stringa di query degli URL, se presente.
Da un blocco di testo, la funzione dovrebbe quindi essere in grado di restituire qualsiasi tipo di URL, anche se ciò significa identificare will.i.am come valido!
es. http://www.google.com, google.com, www.google.com, http://google.com, ftp.google.com, https: // etc ... e qualsiasi derivazione di esso con una stringa di query dovrebbe essere restituito ...
molte grazie, le scuse di nuovo se questo esiste altrove sul SO ma le mie ricerche havent restituito ..
Eventuali duplicati: http://stackoverflow.com/questions/1986121/match-all-urls-in-string-and-return-in- array-in-javascript – fonini
Le persone dovrebbero interrompere il prefisso della variabile JS con '$' ... JS non è PHP! – helpermethod
Scusate, è stato rimosso il mio capo in PHP tutto il giorno! – SW4