Mr.c's Blog

ruby使用正则表达式验证数据格式

下面是我的数据处理,不是通用的,可更具自己的需求,自行修改

def self.pro_contrac_phone(str)
    return  "" if str.nil?
    str.gsub!(" ", "-")
    str.gsub!("86-", "") if str =~ /^86-/
    str = "" unless  str  =~/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
    str
  end

  def self.pro_mobile_phone(str)
    return  "" if str.nil?
    str.gsub!("-", "")
    str = $1 if str =~ /.*(\d{11}).*/
    str = "" unless  str  =~ /(\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/
    str
  end

  def self.pro_fax(str)
    return  "" if str.nil? or str.length < 5
    str.gsub!(/[-|\,|-| ]/, "-")
    str = str[0..-2] if str =~ /-$/  #去掉最后一个-
    str = "" unless  str  =~ /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/
    str
  end

blog comments powered by Disqus