Делимся секретами создания сайтов

Помогите с регуляркой!

Народ, очень нужна помощ с регулярным выражением. Нужно что бы регулярка пропускал только ту строку в которой может содержаться:

- цифры
- знак "+"
- знак "-" (минус, тире - насрать)
- и круглые скобки ( "(" и ")" )

Ничего другого в строке быть не должно. Помогите, пожалуйста. Заранее Спасибо!

Ответы: 8 → “Помогите с регуляркой!”

  1. Nady Guseva Ответить

    Если в строке должен быть как минимум один символ, то: "/^[\d()+-]+$/", а если строка может быть пустой, то: "/^[\d()+-]*$/

  2. Александр Загоруля Ответить

    Спасибо :) )

    ЗЫ: нада учить регулярки… %-)))))))))))

  3. Денис Мальцев Ответить

    1. Что такое d()?
    2. Разве + и – не надо экранировать?

  4. Сергей Екимов Ответить

    \d()
    \d – это любая цифра
    ( – одна скобка
    ) – вторая скобка

  5. Михаил Полянин Ответить

    Что за бред "/^[\d()+-]+$/"??? Вы сами то пробывали это запустить. Вот правильная регулярка:
    "/^([0-9\+-]|\(|\))+$/"

  6. Александр Загоруля Ответить

    "/^[\d()+-]+$/" – Я попробывал эту конструкцию и она у меня 100% рабочая. Не знаю, что не так.

  7. Михаил Полянин Ответить

    хз, я пробывал до этого, регулярка ругалась на () в [], а счас прёт нормально! Пардон

  8. Анатолий Герасин Ответить

    "/^[\d\+\-\(\)]+$/"
    Чтобы быть уверенным в правильной работе рекэкспа, надо либо правильно его составить, либо проверить, чтобы он не пропускал все неправильные варианты (коих можно набрать штук шесть минимум разных)

Ответить