Dee*_*kor 3 ruby ruby-on-rails-3
我是Ruby和Rails的新手,请原谅我,如果这是一个简单的问题.我试图检查用户何时在我的表单中传入IMG网址,这是一个有效的网址.这是我的代码:
if params[:url].include? 'http://' && (params[:url].include? '.jpg' || params[:url].include? '.png')
Run Code Online (Sandbox Code Playgroud)
这会返回并出错.这甚至是最好的方式吗?我该怎么办?谢谢.
Phr*_*ogz 15
if my_str =~ %r{\Ahttps?://.+\.(?:jpe?g|png)\z}i
Run Code Online (Sandbox Code Playgroud)
正则表达式解释说:
%r{...}- 正则表达式文字相似/.../,但允许/在没有转义的情况下在里面使用\A- 字符串的开头(^只是行的开头)http - 文字文字s? - 可选地后跟"s"(允许https://)://- 文字文字(以防止类似的事情http-whee.jpg).+ - 一个或多个字符(不是换行符)\. - 字面时间(确保这是我们正在查看的扩展)(?:aaa|bbb)- 允许aaa或bbb在此处,但不捕获结果jpe?g - "jpg"或"jpeg"png - 文字文字\z- 字符串的结尾($只是行的结尾)i- 使匹配不区分大小写(允许.JPG以及.jpg)但是,您可能只能使用这个(更易读)版本:
allowed_extensions = %w[.jpg .jpeg .png]
if my_str.start_with?('http://') &&
allowed_extensions.any?{ |ext| my_str.end_with?(ext) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3235 次 |
| 最近记录: |