Мне нужно регулярное выражение, которое допускает буквы, числа и тире, то есть ([a-z0-9\-]+), но я не хочу, чтобы одно или несколько тире само по себе без букв или цифр.
Является ли это возможным?
--- Неверно
- Неверно
3e-qw Valid
-3- Действителен
-a- Действительно



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используйте следующий шаблон:
[a-zA-Z0-9-]*(?=[a-zA-Z0-9])[a-zA-Z0-9-]*
https://regex101.com/r/E1yHVY/17
@bootsa, в этом случае пробел будет действовать как разделитель слов / элементов, поэтому его нельзя правильно применить к условию одно или несколько дефисов сами по себе
При использовании граница слова:
/^-*\b[a-z\d-]*$/i
Или требуется одна буква / цифра:
/^-*[a-z\d][a-z\d-]*$/i
Или используйте отрицательный смотреть вперед, чтобы не допустить совпадения строк, состоящих только из тире:
/^(?!-+$)[a-z\d-]+$/i
новое в регулярном выражении, @RomanPerekhrest, а что, если я хочу разрешить пробелы, а также в дополнение к буквам, цифрам и тире