Есть регулярное выражение:
let urlRegx = /^[a-z0-9]+[\-]*/;
Оно должно соответствовать строкам:
Но когда я проверяю на пробелы возвращается true, то есть:
https://jsfiddle.net/7zr1fbqw/
Нужно немного пересмотреть вашу регулярку:
/^[a-z0-9]+([\-][a-z0-9]+)*$/
Она основана на вашем примере и пропускает повторяющиеся блоки [a-z0-9] от 1 до N, разделенные дефисом. Важно обозначить здесь конец строки $, что вы забыли сделать.
Посмотреть работу можно здесь: https://regex101.com/r/E9GT4L/1.
В своем регулярном выражении вы не используете знак конца строки $ и вашему регулярному выражению удовлетворяет первая часть строки. Для проверки можете использовать например такое выражение
/^[^\W]+[\-]*[^\W]+$/
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости