Есть регулярка для урлов:
(https?:\/\/)?(www\.)?[-a-zA-Zа-яА-ЯёЁ0-9@:%._\+~#=]{2,256}(\.)[a-zа-яё]{1,4}(\:[0-9]+)?(\/?[-a-zA-Z0-9@:%_\+~#]+(\.[a-z0-9]+)?)+(\?[-a-zA-Z0-9@:%._\+~#]+(=[-a-zA-Z0-9@:%._\+~#]+)?((\&[-a-zA-Z0-9@:%._\+~#]+(=[-a-zA-Z0-9@:%._\+~#]+)?)+)?)?
но почему-то не работает для русских доменов (пример.рф например). Причем, пример.ru работает, то есть регулярка не работает для русских доменов верхнего уровня. Подскажите пожалуйста, в чем ошибка.
Ссылка с регуляркой и примерами
В приведённой выше регулярке можно добавить диапазон русских букв везде, где предположительно будут буквы, т.е. рядом с латинницей a-z добавить а-яё.
/(https?:\/\/)?(www\.)?[-a-zа-яё0-9@:%._\+~#=]{2,256}\.[a-zа-яё]{1,4}(?::[0-9]+)?(\/?[-a-zа-яё0-9@:%_\+~#]+(\.[a-zа-яё0-9]+)?)+(\?[-а-яёa-z0-9@:%._\+~#]+(=[-a-zа-яё0-9@:%._\+~#]+)?((\&[-a-zа-яё0-9@:%._\+~#]+(=[-a-zа-яё0-9@:%._\+~#]+)?)+)?)?/gi
См. демо
Можно добавить модификатор /i, тогда не нужно указывать буквы в обоих регистрах.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники