Module: Rubymisc::Regex

Defined in:
lib/rubymisc/regex.rb,
lib/rubymisc/regex/manual.rb

Defined Under Namespace

Modules: Manual

Class Method Summary collapse

Class Method Details

.date_iso_8601Object



59
60
61
# File 'lib/rubymisc/regex.rb', line 59

def date_iso_8601
  /\A(?<year>\d{4})-(?<month>(0\d|1[0-2]))-(?<day>([0-2]\d|3[01]))\z/
end

.emailObject



8
9
10
11
12
13
# File 'lib/rubymisc/regex.rb', line 8

def email
  email_name_regex  = '[\w\.%\+\-]+'.freeze
  domain_head_regex = '(?:[A-Z0-9\-]+\.)+'.freeze
  domain_tld_regex  = '(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|jobs|museum)'.freeze
  /\A#{email_name_regex}@#{domain_head_regex}#{domain_tld_regex}\z/i
end

.hexcodeObject



51
52
53
# File 'lib/rubymisc/regex.rb', line 51

def hexcode
  /\A#(\h{3}){1,2}\z/
end

.ipv4Object



42
43
44
45
# File 'lib/rubymisc/regex.rb', line 42

def ipv4
  ip_octet = '(\d|[01]?\d\d|2[0-4]\d|25[0-5])'.freeze
  /\A#{ip_octet}\.#{ip_octet}\.#{ip_octet}\.#{ip_octet}\z/
end

.mac_addressObject



47
48
49
# File 'lib/rubymisc/regex.rb', line 47

def mac_address
  /\A(\h{2}:){5}\h{2}\z/
end

.negation(str) ⇒ Object

anything that does not contain @str



69
70
71
# File 'lib/rubymisc/regex.rb', line 69

def negation(str)
  /^(?!.*#{Regexp.escape(str)}).+$/
end

.phoneObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rubymisc/regex.rb', line 15

def phone
  /\A
    (?:
      (?<prefix>\d)             # prefix digit
      [ \-\.]?                  # optional separator
    )?
    (?:
      \(?(?<areacode>\d{3})\)?  # area code
      [ \-\.]                   # separator
    )?
    (?<trunk>\d{3})             # trunk
    [ \-\.]                     # separator
    (?<line>\d{4})              # line
    (?:\ ?x?                    # optional space or 'x'
      (?<extension>\d+)         # extension
    )?
  \z/x
end

.strong_passwordObject

6+ letter password w. at least 1 number, 1 letter, 1 symbol



64
65
66
# File 'lib/rubymisc/regex.rb', line 64

def strong_password
  /^(?=.*\d)(?=.*[a-z])(?=.*[\W_]).{6,}$/i
end

.urlObject



34
35
36
# File 'lib/rubymisc/regex.rb', line 34

def url
  /\A((https?):(([A-Za-z0-9$_.+!*(),;\/?:@&~=-])|%[A-Za-z0-9]{2}){2,}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*(),;\/?:@&~=%-]*))?([A-Za-z0-9$_+!*();\/?:~-]))\z/
end

.usdObject



55
56
57
# File 'lib/rubymisc/regex.rb', line 55

def usd
  /\A\$(\d{1,3}(\,\d{3})*|\d+)(\.\d{2})?\z/
end

.zipObject



38
39
40
# File 'lib/rubymisc/regex.rb', line 38

def zip
  /\A\d{5}(?:-\d{4})?\z/
end