Javascript/Regex для нахождения просто корневого доменного имени без sub доменов

Я имел поиск и нашел партию подобных regex примеров, но не совсем в чем я нуждаюсь.

Я хочу смочь передать в следующих URL и возвратить результаты:

  • www.google.com возвращает google.com

  • sub.domains.are.cool.google.com возвращает google.com

  • doesntmatterhowlongasubdomainis.idont.wantit.google.com возвращает google.com

  • sub.domain.google.com/no/thanks возвращает google.com

Надежда, которая имеет смысл :) Заранее спасибо! - James

12
задан jamesmhaley 9 August 2010 в 12:13
поделиться

1 ответ

Я не много тестировал, но если я понимаю, о чем вы просите, это должно быть хорошей отправной точкой ...

([A-Za-z0-9-]+\.([A-Za-z]{3,}|[A-Za-z]{2}\.[A-Za-z]{2}|[A-za-z]{2}))\b

РЕДАКТИРОВАТЬ:

Чтобы уточнить, он ищет :

один или несколько буквенно-цифровых символов или тире, за которыми следует буквальная точка

, а затем одна из трех вещей ...

  1. три или более буквенных символа (например, com / net / mil / coop и т. Д. .)
  2. два альфа-символа, за которыми следует буквальная точка, за которыми следуют еще два альфа-символа (например, co.uk)
  3. два альфа-символа (например, us / uk / to и т. Д.)

и в конце это граница слова (\ b), означающая конец строки, пробел или несловной символ (в регулярном выражении символы слова обычно являются буквенно-цифровыми и подчеркиванием).

Как я уже сказал, я не проводил много тестов, но это казалось разумной отправной точкой. Скорее всего, вам нужно будет попробовать и немного настроить, и даже тогда маловероятно, что вы получите 100% для всех тестовых случаев. Есть такие соображения, как доменные имена Unicode и всевозможные технически допустимые, но вы, вероятно, не встретите в дикой природе вещи, которые могут сбить с толку такое простое регулярное выражение, как это, но это, вероятно, приведет к вам 90% + пути туда.

1
ответ дан 2 December 2019 в 18:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: