@khomaldi
разбираюсь потихоньку

Как составить рег. выражение для логина?

Здравствуйте. Помогите написать рег. выражение для проверки логина.
Можно: a-zA-Z0-9-
Но логин не может начинаться с "-" и заканчиваться "-". Также нельзя два "-" подряд.

Верно: login, lo-gin, log23gin, log2-3gin.
Ошибка: -login, ---login, login-, login--, log--in

Заранее спасибо!

РЕШЕНИЕ: от dodo512
/^[a-z0-9](-?[a-z0-9])*$/i
  • Вопрос задан
  • 287 просмотров
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
https://regex101.com/r/CiCKoR/2

const regex = /^[a-z]+(?!-*(-)\1{2,})[a-z0-9-]*[a-z]+$/gmi;
const str = `login
lo-gin
Log23gin
log2-3gin
L--login
L--lo--gin
L---login
---login
login-
login--`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}
Ответ написан
Ваш ответ на вопрос

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

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