使用正则表达式验证 URL/域?(导轨) [英] Validation for URL/Domain using Regex? (Rails)

查看:41
本文介绍了使用正则表达式验证 URL/域?(导轨)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个验证来检查以确保域/url 有效,例如test.com"

I am trying to create a validation that checks to make sure a domain/url is valid for example "test.com"

def valid_domain_name?
  domain_name = domain.split(".")
  name = /(?:[A-Z0-9\-])+/.match(domain_name[0]).nil?
  tld = /(?:[A-Z]{2}|aero|ag|asia|at|be|biz|ca|cc|cn|com|de|edu|eu|fm|gov|gs|jobs|jp|in|info|me|mil|mobi|museum|ms|name|net|nu|nz|org|tc|tw|tv|uk|us|vg|ws)/.match(domain_name[1]).nil?
  if name == false or tld == false
    errors.add(:domain_name, 'Invalid domain name. Please only use names with letters (A-Z) and numbers (0-9).')
  end
end

到目前为止,这是我所拥有的,但它不起作用.它可以让错误的 URL 顺利通过.

This is what I have so far but it doesn't work. It lets bad URLs through without failing.

我不太了解正则表达式.

I don't know regex very well.

推荐答案

偶然发现:

validates_format_of :domain_name, :with => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/ix

仅供参考:Rubular 是测试 Ruby 正则表达式的绝佳资源

FYI: Rubular is a fantastic resource for testing your Ruby regular expressions

这篇关于使用正则表达式验证 URL/域?(导轨)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆