Разрешить один hypen где-то в середине имени

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

/^[A-Za-zàèéáäÄüÜöÖ]+$/

Как я могу добавить правило, разрешающее один дефис (-)? Иногда у людей есть дефисы в их имени, например. "Ханс-Мейер"

Я старался:

/^[A-Za-zàèéáäÄüÜöÖ[-{1}]]+$/

Дефис не должен стоять ни в начале, ни в конце.

У некоторых людей есть несколько дефисов. Если вам действительно нужны имена, не проверяйте их. Заставьте их подтвердить, сделав нежелательными последствия неправильного ввода вашего имени.

Mad Physicist 22.05.2019 14:03

Используйте /^[A-Za-zàèéáäÄüÜöÖ]+(?:-[A-Za-zàèéáäÄüÜöÖ]+)?$/

Wiktor Stribiżew 22.05.2019 14:10
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
2
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мой комментарий более философский. С технической стороны попробуйте так:

/^[A-Za-zàèéáäÄüÜöÖ]+-?[A-Za-zàèéáäÄüÜöÖ]+$/

Я предлагаю изменить -? часть для -*, поэтому она будет соответствовать нулю или большему числу дефисов, решая ситуацию, которую вы прокомментировали в вопросе: «У некоторых людей есть несколько дефисов»: ^[A-Za-zàèééáäÄüÜöÖ]+-*[A-Za-zàèéáäÄüÜöÖ]+$ Demo : regex101.com/r/RhosOA/2

Pablo 22.05.2019 14:14

@Пабло. № 1, это не то, о чем спрашивал ОП, № 2, -* означает любое количество дефисов последовательный, что бессмысленно.

Mad Physicist 22.05.2019 14:24

ok @Mad Physicist Я понял, что, когда вы сказали «У некоторых людей есть несколько дефисов», вы имели в виду xxx xx-xx xx--xx xx-(n)xx, и это то, что решает -* (ноль или более чисел -). Я неправильно понял ваш комментарий.

Pablo 22.05.2019 15:08

Другие вопросы по теме