JavaScript Regex ограничение _

1

Это мое регулярное выражение

^(?![^az])(?!.*\.\.)[a-z0-9._]+([az])$

правила

  • Строка должна начинаться и заканчиваться на [az]

  • двойной. в строке не допускается

  • double _ в строке разрешено (должно быть, это не так)

  • Разрешенные символы: [a-z0-9_.]

все работает так, как будто я хочу, но я не могу ограничить 2 o больше _ в строке, для которой он так же ограничен. но не работает для _

Это онлайн-редактор: https://regex101.com/r/XJXlpS/2

что случилось?

  • 1
    У вас есть какие-нибудь тестовые строки совпадения или несоответствия?
  • 2
    @psidom В этом онлайн-редакторе есть строки, перейдите на вкладку модульного теста, там есть
Показать ещё 1 комментарий
Теги:

1 ответ

1
Лучший ответ

Вы можете использовать это регулярное выражение:

/^(?![^a-z])(?!.*([_.])\1)[\w.]*[a-z]$/gmi

Демо-версия RegEx

RegEx Breakup:

  • ^: Начать
  • (?![^az]): Убедитесь, что первый символ - это письмо
  • (?!.*([_.])\1): Убедитесь, что у нас нет повторного подчеркивания или точки
  • [\w.]*: сопоставить слова 0+ слова или точки
  • [az]: сопоставить письмо в конце
  • $: Конец
  • 0
    Это все еще позволяет больше чем 2 _ непрерывно ..
  • 1
    Это не разрешено, ab__c - неудачное совпадение в связанной демонстрации.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню