формат проверки правильности рельсы в регулярном выражении - PullRequest
1 голос
/ 13 марта 2012

Я добавляю проверку правильности для модели рельсов, используя следующее регулярное выражение:

validates :reference, :presence => true, :format => { :with => /^[a-zA-Z0-9_. ]*$/i }

Эта проверка будет соответствовать любым не буквенно-цифровым символам и игнорирует подчеркивание и точку.

При тестировании на rubular.com регулярное выражение не соответствует ни одному из вышеупомянутых шаблонов. Вместо этого, регулярные совпадения с использованием этого регулярного выражения:

/[^a-zA-Z0-9_. ]/i

Кто-нибудь знает, в чем причина разницы между ними?

Спасибо

1 Ответ

2 голосов
/ 13 марта 2012

^ имеет два значения. При использовании вне скобок это означает, что «строка начинается с». Когда используется внутри скобок, это означает, что то, что соответствует, является противоположным. Мне кажется, что я не совсем уверен, поэтому: [a-z] будет соответствовать каждой строчной букве, в то время как [^a-z] будет соответствовать любому, кроме строчной буквы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...