gpt4 book ai didi

ruby-on-rails - (rails) 使用正则表达式验证 URL 帮助

转载 作者:行者123 更新时间:2023-12-04 03:47:37 24 4
gpt4 key购买 nike

我正在使用以下内容来验证 URL 的格式是否有效:

validates_format_of :website, :with => URI::regexp(%w(http https))

但是,当 url 不以 http:// 开头时它不起作用或 https:// .是否有一些类似的方法可以使用 URI::regexp 验证 URL (或 URI )并使其包含不以 http:// 开头的有效 URL ? (例如, www.google.com 是有效的,就像 http://www.google.com 一样)

最佳答案

This post on Daring Fireball提供了一个强大的正则表达式:

\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))

A more recent post对其进行了改进(注意,为了清楚起见,此处添加了换行符和缩进;有​​关更扩展版本的说明,请参阅帖子):
(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|
www\d{0,3}[.]|
[a-z0-9.\-]+[.][a-z]{2,4}/)
(?:[^\s()<>]+|
\(([^\s()<>]+|
(\([^\s()<>]+\)))*\))+
(?:\(([^\s()<>]+|
(\([^\s()<>]+\)))*\)|
[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

从我的测试 URL::regexp是在 URI 的定义中松散(尽管它确实需要 http...)。

您可以使用虚拟属性或 before_save过滤器以附加 http://如有必要,转到您的网址。

关于ruby-on-rails - (rails) 使用正则表达式验证 URL 帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1824678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com