Wiem, że zostało to zadane tysiąc razy wcześniej (przepraszam), ale szukając SO/Google itp. Mam jeszcze uzyskać rozstrzygającą odpowiedź.JavaScript: wyodrębnij adresy URL z ciągu znaków (w tym querystring) i zwróć tablicę
Zasadniczo potrzebuję funkcji JS, która po przekazaniu ciągu znaków identyfikuje & wyodrębnia wszystkie adresy URL na podstawie wyrażeń regularnych, zwracając tablicę wszystkich znalezionych. np .:
function findUrls(searchText){
var regex=???
result= searchText.match(regex);
if(result){return result;}else{return false;}
}
Funkcja powinna być w stanie wykryć i zwrócić wszystkie potencjalne adresy URL. Zdaję sobie sprawę z nierozwiązanych problemów z tym (zamknięcie nawiasów itp.), Więc mam wrażenie, że proces musi być:
Podziel ciąg (searchText
) na różne sekcje rozpoczynające się/kończące) z nic albo spacja lub karetka powracają po jej obu stronach, co powoduje powstanie różnych fragmentów treści, np zrób split.
Dla każdego fragmentu treści, który wynika z podziału, sprawdź, czy pasuje on do logiki adresu URL dowolnej konstrukcji, a mianowicie czy zawiera kropkę bezpośrednio po tekście (jedna stała reguła dla kwalifikowania potencjalnego adresu URL).
W wyrażeniu regularnym należy sprawdzić, czy po kropce następuje bezpośrednio inny tekst, o typie dopuszczalnym dla ciągu znaków zapytania, oraz że jest on poprzedzony tekstem dopuszczalnego typu dla adresu URL.
Jestem świadomy fałszywych alarmów może wynik, jednak wszelkie zwracane wartości będą następnie sprawdzane z wywołaniem do samego adresu URL, więc można to zignorować. Inne funkcje, które znalazłem, często też nie zwracają ciągu zapytań adresów URL, jeśli są obecne.
Z bloku tekstu funkcja powinna mieć możliwość zwracania dowolnego typu adresu URL, nawet jeśli oznacza to identyfikację pliku will.i.am jako prawidłowego!
np. http://www.google.com, google.com, www.google.com, http://google.com, ftp.google.com, https: // etc ... oraz jego ewentualne wyprowadzenie z ciągiem zapytania powinny być zwrócone ...
Wielkie dzięki, przeprosiny ponownie jeśli istnieje gdzie indziej na SO ale moje wyszukiwania zwrócone miałaś go ..
Możliwy duplikat: http://stackoverflow.com/questions/1986121/match-all-urls-in-string-and-return-in- array-in-javascript – fonini
Ludzie powinni zatrzymać prefiksowanie zmiennej JS za pomocą '$ ... ... JS nie jest PHP! – helpermethod
Przepraszam, miałem głowę w PHP cały dzień, usunie! – SW4