Ответ 1
Вы можете использовать это:
/^
[a-z0-9]+ # One or more repetition of given characters
(?: # A non-capture group.
- # A hyphen
[a-z0-9]+ # One or more repetition of given characters
)* # Zero or more repetition of previous group
$/
Это будет соответствовать:
- Последовательность буквенно-цифровых символов в начале.
- Затем он будет соответствовать дефису, затем последовательности буквенно-цифровых символов, 0 или более раз.