Создать regExp для валидации домена любого уровня
Валидные адресы допустим:
asd.sd
asdasd.ru
www.dffe.ru
dfdf.dffdf.df.we
www.yandex.ru
www.asd.asd.asd.asd
Не валидные:
www
www.sdd.
asd.s
asd.sd.s
Начал делать так:
`/([\wЁёА-я\d-]{2,})\.([\wЁёА-я\d-]{2,})/`
Но потом ступор. Надо сделать проверку, что если потом есть точка, то после нее должно быть минимум 2 символа, если точки нет, то вернуть как есть. И эту проверку надо же как-то зациклить, ведь уровней может быть много?
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Можно попробовать так:
const valid = [
'asd.sd',
'asdasd.ru',
'www.dffe.ru',
'dfdf.dffdf.df.we',
'www.yandex.ru',
'www.asd.asd.asd.asd',
];
const notValid = [
'www',
'www.sdd.',
'asd.s',
'asd.sd.s',
];
const re = /^([\wёa-я-]{2,}\.)+[\wёa-я-]{2,}$/i;
console.log(
valid.map(testCase => re.test(testCase))
);
console.log(
notValid.map(testCase => re.test(testCase))
);