Rails - email link validation and phone number validation with URL validation

Viewed 112

I am using this code for URL validation.

def url?(string)
  uri = URI.parse(string)
  !uri.host.nil?
rescue URI::BadURIError
  false
rescue URI::InvalidURIError
  false
end

This works but I also want to validate email links and phone number links.

For example

mailto:test@gmail.com
tel:1234567890

I don't want to include email validation and phone number validation.

Anyone can help me?

1 Answers

Are you looking for this -

def url?(string)
  uri = URI.parse(string)
  throw "MailToError" if uri.scheme == 'mailto'
  throw "TelError" if uri.scheme == 'tel'
  !uri.host.nil?
rescue URI::BadURIError
  false
rescue URI::InvalidURIError
  false
rescue => e
  !(e.to_s.include?("TelError") || e.to_s.include?("MailToError"))
end
Related