Створіть найкоротший регулярний вираз, який приблизно відповідатиме URL-адресі в тексті при запуску в JavaScript
Приклад:
"some text exampley.com".match(/your regular expression goes here/);
Регулярний вираз повинен
- захопити всі дійсні URL-адреси, які призначені для http та https.
- не турбуйтеся про те, що вони не відповідають URL-адресам рядків, які насправді не є дійсними URL-адресами
super.awesome/cool
- бути дійсним під час запуску у форматі JavaScript
Критерії тесту:
Матч:
- http://example.com
- http://example.com/
- http://example.com/super
- https://example.com/super
- example.com/super
- example.com
- example.com/su-per_duper/?add=yes&subtract=no
- example.com/archive/index.html
- twitter.com/#!/reply
- example.com/234ret2398oent/234th
- codegolf.stackexchange.com/questions/464
- crazy.wow.really.example.com/?cat=nth%3E
- example-example.com
- example1.com
Не відповідає:
- приклад
- супер / круто
- Добрий ранок
- я можу
- Привіт.
Ось тест, який може допомогти трохи уточнити http://jsfiddle.net/MikeGrace/gsJyr/
Прошу вибачення за відсутність чіткості, я не зрозумів, наскільки жахливі відповідні URL-адреси.
\w
для всього, чи очікуєте ви зворотних посилань на різні компоненти URL-адреси?
/:/
як регулярний вираз і відповідати дійсним URI, а не відповідати всім вашим прикладам у списку «Не збігається». Поки ви йдете цим маршрутом, це просто питання: який найкоротший регулярний вираз, який не відповідатиме жодному з прикладних рядків, але все-таки вловлює всі URI.