Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему не регуляркой находится кириллический домен и как учитывать домены 2 уровня? (https://javascript.ru/forum/misc/85466-pochemu-ne-regulyarkojj-nakhoditsya-kirillicheskijj-domen-i-kak-uchityvat-domeny-2-urovnya.html)

accountnujen 13.09.2023 15:01

Почему не регуляркой находится кириллический домен и как учитывать домены 2 уровня?
 
Я хочу найти в тексте все ссылки и обернуть их в тег <a>. Ссылки у меня могут иметь вид: https://google.com, www.google.com, google.com, гугл.рус, поиск.гугл.рус.

На пару с chatgpt удалось добиться только вот такого результата:
Код:

\b[A-Za-zА-Яа-яЁё]*[A-Za-zА-Яа-яЁё]+[.][A-Za-zА-Яа-яЁё]{2,}\b
https://regex101.com/r/4QwNjk/1

Логика была изначально такой: найти всё, что разделено точкой, так как привязываться к https или к www не хочется.

В данном случае, почему то не находится гугл.рус, хотя кириллица указана и от 2 символов...
Как захватывать всё то, что находится до точки (включая http://) - не знаю, а gpt меня не понимает.

voraa 13.09.2023 16:02

/(https?:\/\/)?([A-Za-zА-Яа-яЁё]+\.)+[A-Za-zА-Яа-яЁё]{2,}/g

ksa 13.09.2023 17:15

[A-Za-zА-Яа-яЁё]

Можно еще уменьшить, если использовать ключ i
/(https?:\/\/)?([a-zа-яё]+\.)+[a-zа-яё]{2,}/gi


Часовой пояс GMT +3, время: 02:35.