что означает инструкция "name = ~ /[A-Z].*/"? - PullRequest
0 голосов
/ 02 апреля 2019

Я изучаю ruby ​​на рельсах и вижу код, но не могу понять, как он на самом деле работает.

'' '' ruby ​​

validate: first_letter_must_be_uppercase

private

def first_letter_must_be_uppercase

   errors.add ("name", "first letter must be uppercase") unless name =~ /[A-Z].*/

end

1 Ответ

1 голос
/ 02 апреля 2019

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

объяснение:

/[A-Z].*/
  • [A-Z] - Проверяет наличиелюбая заглавная буква от A до Z
  • . - проверяет наличие любого символа подстановки
  • * - соответствует 0 для любого числа повторений.

Подводя итог

Входная строка должна соответствовать следующему формату - заглавная буква от AZ и затем должна быть от 0 до любого числа символов подстановки

Вы можете проверить это на Rubular

РЕДАКТИРОВАТЬ

Как указал @vasfed, если вы хотите сопоставить первый символ, регулярное выражение необходимо изменить на

/\A[A-Z].*/

\A - обеспечить начало строки

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