Ruby中的正则表达式URL验证

时间:2018-12-18 19:24:11

标签: ruby-on-rails ruby regex rubular

我在模型中有以下红宝石代码:

https://example.com/about-me/privacy-policy-for-example-com/

这一直有效,直到用户尝试保存如下所示的隐私权政策链接:

https://example.com/about-me/privacy-policy-for-example

目标是我不希望他们链接到此隐私策略链接的基本主页(example.com或www.example.com等)(出于某些随机,复杂的原因,我不再赘述)。 上方提供的链接应通过匹配器(这意味着,由于他们链接到其站点上的单独页面,因此不应将其视为匹配项,并且保存表单时不应看到任何错误)-但由于他们在网址的后半部分引用了自己的基本域,因此它作为匹配出现。

我无法为自己的一生弄清楚如何在rubular上使用正确的正则表达式来使此url通过匹配算法。当然,我不能仅仅要求用户重命名其隐私策略链接以从其末尾删除“ com”,因为这将通过objectGUID。 :)

我将非常感谢您提供的任何帮助,以帮助我了解如何解决此问题!

公共链接:http://rubular.com/r/G5OmYfzi6t

1 个答案:

答案 0 :(得分:1)

您的问题是ioctl字符是任何字符,因此它与.中的-相匹配。

如果将其链接到行的开头,它将正确匹配,而不会尝试在域中转义example-com

.