Итак, вы хотите проверить, является ли конкретная строка действительным адресом электронной почты или нет в Ruby.
Вы хотите начать с создания постоянной переменной, в которой будет храниться ваше регулярное выражение.
ТамЭто бесчисленные ресурсы с помощью шпаргалок Regex, которые вы можете включить для сопоставителей.
Вот код регулярного выражения, который проверит, соответствует ли строка общему шаблону, за которым следуют адреса электронной почты.
VALID_EMAIL_REGEX = /\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i
Если вы посмотрите на это выражение, первая часть позволяет использовать имена, цифры, тире и точки.Затем следует убедиться, что используется символ @
.И, наконец, за этим следуют a
и буквы.Обычно это в формате something@domain.extension
.В конце мы гарантируем, что сопоставитель нечувствителен к регистру с помощью /i
.
Для создания метода, который проверяет этот шаблон
def is_valid_email? email
email =~ VALID_EMAIL_REGEX
end
Вышеуказанный метод называется is_valid_email?
, и мыпередаем ему аргумент, называемый email
.
Далее, мы проверяем этот параметр по константе VALID_EMAIL_REGEX
для возврата true
из false
.Затем вы можете проверить некоторые варианты использования:
p is_valid_email?("jon@kinney.com") ? "Valid" : "Invalid"
p is_valid_email?("jonkinney.com") ? "Valid" : "Invalid"
p is_valid_email?("jon.k@kinney.com") ? "Valid" : "Invalid"
p is_valid_email?("jon@kinney") ? "Valid" : "Invalid"
Выполнение этого кода должно вывести:
"Valid"
"Invalid"
"Valid"
"Invalid"
Первый и третий адреса электронной почты действительны, поскольку они соответствуют шаблону, а второй ичетвертый недействителен.
Не забудьте заключить аргументы вашего троичного оператора в круглые скобки.