Помогите с регулярным выражением

stanlee

Новичок
Помогите с регулярным выражением

Задача такова
проверю строку в которой должно быть - английские символы, цыфры до 4 символов, тире до 2 символов

пробовал так

/^([a-zA-Z])+([0-9]{1,4})+([\-]{1,2})+$/

но так будет работать если идет последовательное перечисление
а если например цифры будут в середине текста то не работает
что то я запутался
помогите пожалуйста
 

DiMA

php.spb.ru
Команда форума
алгоритм:

- удалить регом все, кроме англ. символов, проверить длину
- удалить регом все, кроме тире, проверить длину
 

DiMA

php.spb.ru
Команда форума
подсказать куда идти с твоими "надо"? кому, мля, надо? тебе сказано, как правильно делать

if ( "!^(?=(.*-.*-.*|*.(\d.*){4,}|[^\w\d-])$).*$!is" ) FAIL;
попробуй изврат с опережающей (нормальной/негавтивной) проверкой
 

stanlee

Новичок
мля и прочее ты можешь своей маме говорить
а надо значит надо
мне тоже не нравится в 1 строку а приходится
 

stanlee

Новичок
это не моя прихоть
это долбаный vBulletin
кто с ним сталкивался - там есть поле для вставки рег выражения на проверку и все приходится запихнуть в 1 строку
не обхяснять же юзерам как патчить скрипты )

экзамен без этого не принимают?
я уже забыл когда это было )

ладно похоже в 1 строку не получиться
 

DiMA

php.spb.ru
Команда форума
stanlee

> ладно похоже в 1 строку не получиться

пенёк, я же написал путь к правильному решению в одну команду!? Пошевели опилками, почитай доку по регам на указанные неизвестные тебе конструкции и работай. Молча. Бред не по теме уйдет в корзинку.
 
Сверху