Utwórz najkrótsze wyrażenie regularne, które w przybliżeniu będzie pasowało do adresu URL w tekście podczas uruchamiania w JavaScript
Przykład:
"some text exampley.com".match(/your regular expression goes here/);
Wyrażenie regularne musi
- przechwytuj wszystkie prawidłowe adresy URL, które dotyczą http i https.
- nie martw się, że nie dopasujesz ciągów szukających adresów URL, które w rzeczywistości nie są poprawnymi adresami URL
super.awesome/cool
- być poprawny, gdy jest uruchamiany jako wyrażenie regularne JavaScript
Kryteria testowe:
Mecz:
- http://example.com
- http://example.com/
- http://example.com/super
- https://example.com/super
- przyklad.com/super
- przyklad.com
- example.com/su-per_duper/?add=yes&subtract=no
- example.com/archive/index.html
- twitter.com/#!/reply
- przyklad.com/234ret2398oent/234nth
- codegolf.stackexchange.com/questions/464
- crazy.wow.really.example.com/?cat=nth%3E
- przykład-przyklad.com
- przyklad1.com
Nie pasuje:
- przykład
- Super fajne
- Dzień dobry
- mogę
- Witaj.
Oto test, który może trochę wyjaśnić http://jsfiddle.net/MikeGrace/gsJyr/
Przepraszam za brak jasności, nie zdawałem sobie sprawy, jak okropnie pasujące są adresy URL.
\w
do wszystkiego Czy oczekujesz rereferencji dla różnych składników adresu URL?
/:/
jako wyrażenia regularnego i dopasować prawidłowe URI i nie pasować do wszystkich przykładów z listy »Niezgodne«. Tak długo, jak idziesz tą trasą, pozostaje tylko pytanie: jakie jest najkrótsze wyrażenie regularne, które nie będzie pasowało do żadnego z ciągów przykładowych, ale nadal będzie przechwytywać wszystkie identyfikatory URI.