日本的全角,半角正则婚配

日本的全角,半角正则匹配1.在lib中建立一个文件:string_util.rb,定义以下内容:class String# 半角字符串#

日本的全角,半角正则匹配
1.在lib中建立一个文件:string_util.rb,定义以下内容:
class String
  # 半角字符串
  # 【引数】
  # 【返値】
  # 【注意】
  # 【著作】20100518 xxc   
  def self.hankaku?(str)
    return nil if str.nil? #文字列が空のとき
    unless str.to_s =~ /^[ -~?-?]*$/ # 半角のみOKなので、全角が混ざっているとfalseが返る
      return false
    end
  return true
  end

  # 全角字符串
  # 【引数】
  # 【返値】
  # 【注意】
  # 【著作】20100518 xxc   
  def self.zenkaku?(str)
    return nil if str.nil? # 文字列が空のとき
    unless str.to_s =~/^[^ -~?-?]*$/ # 全角のみOKなので、半角が混ざっているとfalseが返る
      return false
    end
    return true
  end
end

2.在environment.rb中: require 'string_util'
3.调用:
    * String.hankaku?("abcdef") # 判断全角字符串
    * String.zenkaku?("abcdef") # 判断半角字符串
    * 直接在validate中调用:

      validates_format_of :code, :with => /^[ -~?-?]*$/, :message => 'wrong!', :if => proc{ |p| p.code.present? }