[^\s]
разрешит любой непробельный символ, а не только те, которые находятся в вашем ограниченном наборе.Вам нужно перечислить символы, которые вы там разрешаете, а не только символы, которые вы не разрешаете.Это то же самое, что вы разрешаете в середине, за исключением того, что без \s
.
Вам также нужно *
после средней части, чтобы разрешить любое количество этих символов.
/^[A-Za-z0-9-#.\/][A-Za-z0-9-#.\/\s]*[A-Za-z0-9-#.\/]$/