簡體   English   中英

在rails上的ruby中使用regexp驗證格式

[英]validates format with regexp in ruby on rails

我的要求:添加驗證以確保SITEMAP_URL關鍵字始終包含在search_engines.url中,並且格式應為http://www.example.com/

class SearchEngine < ActiveRecord::Base

  validates :name, :ping_url, :uniqueness => true, :presence => true
  validates :ping_url, :format => {:with => /\=SITEMAP_URL$/}, :presence => true

end

我寫的驗證是否正確。

驗證看起來很好。

除非您希望/\\=SITEMAP_URL$/進行插值,否則不會。

它只匹配字符串;

  • “http://some.com?q=SITEMAP_URL”

這真的是你的意思嗎?

如果你有

SITEMAP_URL = "/sitemap.xml"

然后你可以說

SITEMAP_REGEXP = /\=#{SITEMAP_URL}/

但這將解釋“。” 任何角色。

所以你需要使用Regexp.escape

差不多

Regexp.new(Regexp.escape("=#{SITEMAP_URL}")+"$")

應該做你想做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM