require 'nkf' module Bizside class StringUtils Characters = ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a def self.create_random_alpha_string length, case_sensitive = false chars = ('a'..'z').to_a chars += ('A'..'Z').to_a if case_sensitive chars.sample(length).join end def self.create_random_string(number) (Array.new(number.to_i) do Characters[rand(Characters.size)] end ).join end def self.to_hiragana(s) return s if is_empty(s) NKF::nkf('-Ww --hiragana', s) end def self.to_katakana(s) return s if is_empty(s) NKF::nkf('-Ww --katakana', s) end def self.to_zen(s) return s if is_empty(s) NKF::nkf('-WwXm0', s) end def self.to_han(s) return s if is_empty(s) NKF::nkf('-Wwxm0Z0', s) end def self.sjis_to_utf8(s) NKF.nkf('-Swx', s) end def self.utf8_to_sjis(s) NKF.nkf('-Wsx', s) end def self.is_empty(s) s.nil? or s.empty? end def self.equal(s1, s2) if is_empty(s1) and is_empty(s2) true else s1 == s2 end end def self.current_time_string(now = nil) now = Time.now unless now now.instance_eval { '%s%03d' % [strftime('%Y%m%d%H%M%S'), (usec / 1000.0).round] } end def self.is_user_password(value,minimum,maximum) value =~ /^[!-~]{#{minimum},#{maximum}}$/u end def self.is_not_user_password(value,minimum,maximum) ! is_user_password(value,minimum,maximum) end def self.is_login_id(value) return nil if value =~ /\.{2,}/ value =~ /^[0-9a-z_\.\-]{1,50}$/u end def self.is_not_login_id(value) ! is_login_id(value) end # HTMLタグを除去した文書を返す def self.remove_html_tag(str) return nil unless str str=str.dup str.sub!(/<[^<>]*>/,"") while /<[^<>]*>/ =~ str str end # リッチテキストの改行を保ったまま、HTMLタグを除去した文書を返す def self.remove_rich_html_tag(str) return nil unless str ret = str.gsub(/