ruby-on-rails 使用regex验证Rails

u5i3ibmn  于 2022-12-24  发布在  Ruby
关注(0)|答案(2)|浏览(128)

我正在阅读rails6的敏捷网络开发。
在第7章“任务B:验证和联合测试

class Product < ApplicationRecord
  validates :image_url, allow_blank: true, format: {
      with: %r{\.(gif|jpg|png)\z}i, 
  }

i到底是什么意思?
它应该表示它以.git或.jpg或.png结尾

yfwxisqw

yfwxisqw1#

查询中的i告诉正则表达式使用不区分大小写的匹配,这里没有什么是rails独有的,所以你可能想了解一下正则表达式,了解所有可以用来修改表达式的不同术语。
表达式%r{\.(gif|jpg|png)\z}i等效于/\.(gif|jpg|png)\z/i
\.表示|是一个句点字符,或者如您所述,\z是字符串的结尾,您可以在此处阅读更多警告:http://www.regular-expressions.info/anchors.htmli是激励案例匹配
这意味着您将匹配“test.jpg”、“test.JPG”、“test.JPG”或这三个字符的任何排列,在任何情况下,前面都有一个句点,该句点出现在字符串的末尾。
以下是针对ruby特定的regex的文档:
https://ruby-doc.org/2.7.7/Regexp.html
这里有一些东西,你可以玩和学习正则表达式一般和尝试一些表达式自己:
https://regexr.com

06odsfpq

06odsfpq2#

简要说明:正则表达式末尾的“i”是一个修饰符,它使表达式不区分大小写。这意味着它将匹配图像URL中的大小写字母。

相关问题