Регулярное выражение для простого домена Я пытаюсь сопоставить простой домен: example.com Но все его комбинации. Как я могу это сделать: https://example.com http://www.example.com etc. Ответ 1 ^https?://([\w\d]+\.)?example\.com$ с использованием кода: var result = /^https?:\/\/([a-zA-Z\d-]+\.){0,}example\.com$/.test('https://example.com'); // result is either true of false Я улучшил его, чтобы он соответствовал "http://a.b.example.com" Ответ 2 Более общий пример, который я использовал: /http(?:s)?:\/\/(?:[\w-]+\.)*([\w-]{1,63})(?:\.(?:\w{3}|\w{2}))(?:$|\/)/i Обратите внимание, что это решение не подбирает правильную метку для TLD с 5 символами. Пример: http://mylabel.co.uk Будет выбран как "co" вместо "mylabel", но http://mylabel.co будет правильно сопоставлен как "mylabel". Регулярное выражение было достаточно хорошим для меня даже с этим ограничением. Обратите внимание, что предел 63 символов для метки является спецификацией RFC. Надеюсь, это поможет любому, кто ищет тот же ответ в будущем. Ответ 3 Возможно, вы можете использовать только совпадение с доменным именем в URL-адресе: /^(?:http(?:s)?:\/\/)?(?:[^\.]+\.)?example\.com$/ Он будет соответствовать любой из следующих строк: https://example.com http://www.example.com http://example.com https://example.com www.example.com example.com UPDATE:. Чтобы полностью использовать URL-адрес (а не только часть имени домена): /^(?:http(?:s)?:\/\/)?(?:[^\.]+\.)?example\.com(?:/.*)?$/ Ответ 4 Следующие работы в Java, ^(http:|https:|)[/][/]([^/]+[.])*example.com$ и соответствует вашим тестовым примерам, а не соответствует, например, http://www.google.com/http://example.com
Ответ 1 ^https?://([\w\d]+\.)?example\.com$ с использованием кода: var result = /^https?:\/\/([a-zA-Z\d-]+\.){0,}example\.com$/.test('https://example.com'); // result is either true of false Я улучшил его, чтобы он соответствовал "http://a.b.example.com"
Ответ 2 Более общий пример, который я использовал: /http(?:s)?:\/\/(?:[\w-]+\.)*([\w-]{1,63})(?:\.(?:\w{3}|\w{2}))(?:$|\/)/i Обратите внимание, что это решение не подбирает правильную метку для TLD с 5 символами. Пример: http://mylabel.co.uk Будет выбран как "co" вместо "mylabel", но http://mylabel.co будет правильно сопоставлен как "mylabel". Регулярное выражение было достаточно хорошим для меня даже с этим ограничением. Обратите внимание, что предел 63 символов для метки является спецификацией RFC. Надеюсь, это поможет любому, кто ищет тот же ответ в будущем.
Ответ 3 Возможно, вы можете использовать только совпадение с доменным именем в URL-адресе: /^(?:http(?:s)?:\/\/)?(?:[^\.]+\.)?example\.com$/ Он будет соответствовать любой из следующих строк: https://example.com http://www.example.com http://example.com https://example.com www.example.com example.com UPDATE:. Чтобы полностью использовать URL-адрес (а не только часть имени домена): /^(?:http(?:s)?:\/\/)?(?:[^\.]+\.)?example\.com(?:/.*)?$/
Ответ 4 Следующие работы в Java, ^(http:|https:|)[/][/]([^/]+[.])*example.com$ и соответствует вашим тестовым примерам, а не соответствует, например, http://www.google.com/http://example.com