@LenovDan

RegEx на домены с кириллицей?

/(http(s)?:\/\/.)?(www\.)?[-a-z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-z0-9@:%_\+.~#?&//=]*)/ig


Как сделать выделение доменов с кириллицей вместе с латиницей?

Пробовал так же заменить a-z на а-я результата нет..
  • Вопрос задан
  • 2188 просмотров
Пригласить эксперта
Ответы на вопрос 2
prntscr.com/fmc99r
/(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/ig


prntscr.com/fmcajx
@([\p{Cyrillic}\p{Latin}\d\.-]{1,64})?\.(?:\x{0440}\x{0444}|ru|su|arpa|info|aero|name|[a-z]{3})@/igu
Ответ написан
Я для проверки использую нодовский модуль url. Он парсит адрес (обязательно с протоколом) и раскладывает его по компонентам - протокол, имя, порт, путь, параметры и т.д., причем имя сразу в паникод преобразовывает - не надо с национальными символами в регэкспе ничего выдумывать.

function validateUrl(address) {
	let url = require('url');
	let addressRegexp = new RegExp('^([\\w\\-]+?\\.?)+?\\.[\\w\\-]+?$');

	if (address.search(/^(ftp|http|https):\/\//) === -1) { address = 'http://' + address; }	

	let hname = url.parse(address).hostname;

	if (hname.length < 4 || hname.length > 255 || !addressRegexp.test(hname)) {
		throw new WrongInput('');
	}
}


https://nodejs.org/dist/latest-v6.x/docs/api/url.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы