【问题标题】:Rails string parse for forms用于表单的 Rails 字符串解析
【发布时间】:2014-07-22 15:19:37
【问题描述】:

如何解析rails中的字符串?我有提交高度的表格。示例:5'9 我想解析逗号并将 59 保存在数据库中

【问题讨论】:

  • 您能提供更多信息吗?您是否只想将数字保存到该字段中,还是希望允许一些标点符号,如句点?

标签: ruby-on-rails ruby string parsing


【解决方案1】:

如果您想忽略除数字以外的任何内容,请使用此正则表达式

 "5'9".gsub(/\D/, '')
 # => "59"
 "5 9".gsub(/\D/, '')
 # => "59" 
 "5 feet 9 inches".gsub(/\D/, '')
 # => "59" 
 '5"  9'.gsub(/\D/, '')
 # => "59"

正则表达式解释:\D 代表除数字以外的任何字符。

【讨论】:

    【解决方案2】:

    有很多方法可以做到这一点。如果您只想删除引号,可以使用:

    "5'9".gsub "'", ""
    #=> "59"
    

    "5'9".split("'").join("")
    #=> "59"
    

    如果你想将 5 和 9 保存在不同的属性中,你可以尝试:

    a = "5'9".split("'")
    object.feet = a[0]
    object.inches = a[1]
    

    如果您想删除除数字之外的所有内容,您可以使用正则表达式:

    "5'9".gsub /[^\d]/, ""
    #=> "59" 
    

    如果您有不同的要求,请更新问题以添加更多详细信息。

    【讨论】:

      【解决方案3】:

      您想查看subgsub 方法

      height.gsub! "'", ''
      

      sub 替换 first 实例,gsub 替换 所有 实例,您甚至可以在模型上执行此操作:

      before_validation :remove_apostrophes # or before_save
      
      protected
      def remove_apostrophes
        self.property.gsub! "'", ''
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-25
        • 1970-01-01
        • 1970-01-01
        • 2016-05-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-19
        • 1970-01-01
        相关资源
        最近更新 更多