class String

Public Instance Methods

jagger_del_inter() click to toggle source

清除干扰数据 清除包含: 空格,回车

# File lib/http_crawler/common/string.rb, line 5
def jagger_del_inter
  self.gsub(/(?:\n|\t|\r| | | |)/, "")
end
jagger_to_array() click to toggle source

创建时间: 2019/5/6 18:11 更新时间: 2019/5/6 作者: Jagger 方法名称: jagger_to_array 方法说明: 字符串分割成数组 调用方式: jagger_to_array

@return Array

# File lib/http_crawler/common/string.rb, line 18
def jagger_to_array
  self.split(/(?:\n|\t|\r| | | )+/)
end
jagger_to_f(parameter = {}) click to toggle source

创建时间: 2020/5/16 15:24 更新时间: 2020/5/16 作者: Jagger 方法名称: jagger_to_f 方法说明: 转浮点型 调用方式: jagger_to_f

@return

# File lib/http_crawler/common/string.rb, line 66
def jagger_to_f(parameter = {})
  case self
  when /^\d+十亿$/
    num = self[/^(\d+)亿$/, 1].to_f * 1000000000
  when /^\d+亿$/
    num = self[/^(\d+)亿$/, 1].to_f * 100000000
  when /^\d+千万$/
    num = self[/^(\d+)千万$/, 1].to_f * 10000000
  when /^\d+百万$/
    num = self[/^(\d+)百万$/, 1].to_f * 1000000
  when /^\d+十万$/
    num = self[/^(\d+)十万$/, 1].to_f * 100000
  when /^\d+万$/
    num = self[/^(\d+)万$/, 1].to_f * 10000
  when /^\d+千$/
    num = self[/^(\d+)千$/, 1].to_f * 1000
  when /^\d+百$/
    num = self[/^(\d+)百$/, 1].to_f * 100
  when /^\d+十$/
    num = self[/^(\d+)十$/, 1].to_f * 10
  else
    num = self.to_f
  end
  return num
end
jagger_to_i() click to toggle source

创建时间: 2020/5/16 15:19 更新时间: 2020/5/16 作者: Jagger 方法名称: jagger_to_i 方法说明: 转整型 调用方式: jagger_to_i

@return

# File lib/http_crawler/common/string.rb, line 31
def jagger_to_i
  case self
  when /^\d+十亿$/
    num = self[/^(\d+)亿$/, 1].to_i * 1000000000
  when /^\d+亿$/
    num = self[/^(\d+)亿$/, 1].to_i * 100000000
  when /^\d+千万$/
    num = self[/^(\d+)千万$/, 1].to_i * 10000000
  when /^\d+百万$/
    num = self[/^(\d+)百万$/, 1].to_i * 1000000
  when /^\d+十万$/
    num = self[/^(\d+)十万$/, 1].to_i * 100000
  when /^\d+万$/
    num = self[/^(\d+)万$/, 1].to_i * 10000
  when /^\d+千$/
    num = self[/^(\d+)千$/, 1].to_i * 1000
  when /^\d+百$/
    num = self[/^(\d+)百$/, 1].to_i * 100
  when /^\d+十$/
    num = self[/^(\d+)十$/, 1].to_i * 10
  else
    num = self.to_i
  end
  return num
end
jagger_to_time() click to toggle source

转换成时间格式

# File lib/http_crawler/common/string.rb, line 95
def jagger_to_time

  # 然后先遍历所有格式
  # 模糊匹配格式,放前面的优先匹配
  # 如果 "%Y年%m月%d日%H:%M" 在 "%Y年%m月%d日%H:%M:%S" 前面
  # 则 "2018年01月01日12:01:30".jagger_to_time => 2018-01-01 12:01:00 +0800
  # 秒会被去掉
  [
      "%Y年%m月%d日%H:%M:%S",
      "%Y年%m月%d日%H:%M",


      "%Y年%m月%d日 %H:%M:%S",
      "%Y年%m月%d日 %H:%M",

      "%Y-%m-%d %H:%M:%S",
      "%Y-%m-%d %H:%M",

      "%Y-%m-%d%H:%M:%S",
      "%Y-%m-%d%H:%M",

      "%Y%m%d%H%M%S",
      "%Y%m%d%H%M",

      "%m月%d日 %H%M%S",
      "%m月%d日 %H%M",

      "%m月%d日%H%M%S",
      "%m月%d日%H%M",

      "%m月%d日 %H:%M:%S",
      "%m月%d日 %H:%M",

      "%m月%d日%H:%M:%S",
      "%m月%d日%H:%M",

      "%Y-%m-%d",
      "%Y%m%d",

      "%Y年%m月%d日",
      "%Y.%m.%d",

      "%Y年%m月",
      "%m月%d日",

      "%Y/%m/%d",
      "%Y/%m",

  ].each do |v|
    begin
      return Time.strptime(self, v)
    rescue => error

    end
  end

  case self
  when /^\d+分钟前$/
    num = self[/^(\d+)分钟前$/, 1].to_i
    return Time.now - num.minute
  when /^\d+小时前$/
    num = self[/^(\d+)小时前$/, 1].to_i
    return Time.now - num.hour
  when /^\d+天前$/
    num = self[/^(\d+)天前$/, 1].to_i
    return Time.now - num.day
  when /^\d+年前$/
    num = self[/^(\d+)年前$/, 1].to_i
    return Time.now - num.year
  end

  return Time.at(self.to_i / 1000.0) if self.length == 13
  return Time.at(self.to_i) if self.length == 10

  # 最后用 Time通用类型尝试
  return Time.parse(self)
end