Ruby/Development/Utility Regexps
Материал из Wiki.crossplatform.ru
(Различия между версиями)
ViGOur (Обсуждение | вклад) м (1 версия: Импорт выборки материалов по Ruby) |
Текущая версия на 17:55, 13 сентября 2010
Checking a Credit Card Checksum
module CreditCard def creditcard? numbers = self.to_s.gsub(/[^\d]+/, "").split(//) checksum = 0 0.upto numbers.length do |i| weight = numbers[-1*(i+2)].to_i * (2 - (i%2)) checksum += weight % 9 end return numbers[-1].to_i == 10 - checksum % 10 end end class String include CreditCard end class Integer include CreditCard end puts "1111 1111 6542 1319".creditcard? puts "1111111111111313".creditcard?
Validate an email address
def probably_valid?(email) valid = "[A-Za-z\d.+-]+" # Commonly encountered email address characters (email =~ /#{valid}@#{valid}\.#{valid}/) == 0 end #These give the correct result. probably_valid? "joe@example.ru" # => true probably_valid? "joe@examplecom" # => false
Validate an email address with Resolv::DNS
require "resolv" def valid_email_host?(email) hostname = email[(email =~ /@/)+1..email.length] valid = true begin Resolv::DNS.new.getresource(hostname, Resolv::DNS::Resource::IN::MX) rescue Resolv::ResolvError valid = false end return valid end valid_email_host?("j@l.m") # => false valid_email_host?("joe@oreilly.ru") # => true