Module: Rubymisc::Regex
- Defined in:
- lib/rubymisc/regex.rb,
lib/rubymisc/regex/manual.rb
Defined Under Namespace
Modules: Manual
Class Method Summary collapse
- .date_iso_8601 ⇒ Object
- .email ⇒ Object
- .hexcode ⇒ Object
- .ipv4 ⇒ Object
- .mac_address ⇒ Object
-
.negation(str) ⇒ Object
anything that does not contain @str.
- .phone ⇒ Object
-
.strong_password ⇒ Object
6+ letter password w.
- .url ⇒ Object
- .usd ⇒ Object
- .zip ⇒ Object
Class Method Details
.date_iso_8601 ⇒ Object
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 |
.email ⇒ Object
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 |
.hexcode ⇒ Object
51 52 53 |
# File 'lib/rubymisc/regex.rb', line 51 def hexcode /\A#(\h{3}){1,2}\z/ end |
.ipv4 ⇒ Object
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_address ⇒ Object
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 |
.phone ⇒ Object
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_password ⇒ Object
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 |
.url ⇒ Object
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 |
.usd ⇒ Object
55 56 57 |
# File 'lib/rubymisc/regex.rb', line 55 def usd /\A\$(\d{1,3}(\,\d{3})*|\d+)(\.\d{2})?\z/ end |
.zip ⇒ Object
38 39 40 |
# File 'lib/rubymisc/regex.rb', line 38 def zip /\A\d{5}(?:-\d{4})?\z/ end |