Регулярное выражение для допустимого субдомена в Ruby

I ' m пытается проверить строку пользовательского ввода, которая будет использоваться в качестве поддомена. Правила заключаются в следующем:

  1. Длина от 1 до 63 символов (я беру 63 из числа символов, которые Google Chrome допускает в поддомене, не уверен, что это на самом деле директива сервера. Если у вас есть лучший совет по действию максимальная длина, мне интересно это услышать)
  2. Может содержать a-zA-Z0-9, дефис, подчеркивание
  3. Не может начинаться или заканчиваться дефисом или подчеркиванием

РЕДАКТИРОВАТЬ: Из введенных ниже данных я добавили следующее: 4. Не должно содержать следующих друг за другом дефисов или подчеркиваний.

Примеры:

a => valid
0 => valid
- => not valid
_ => not valid
a- => not valid
-a => not valid
a_ => not valid
_a => not valid
aa => valid
aaa => valid
a-a-a => valid
0-a => valid
a&a => not valid
a-_0 => not valid
a--a => not valid
aaa- => not valid

Моя проблема в том, что я не уверен, как указать с помощью RegEx, что строка может состоять только из одного символа, а также указать, что это не может начинаются или заканчиваются дефисом или подчеркиванием.

Спасибо!

10
задан gsr 4 March 2011 в 17:50
поделиться