mirror of
https://github.com/zhigang1992/rmq.git
synced 2026-05-30 18:04:01 +08:00
Adds :ukzip to built in validator.
This commit is contained in:
@@ -130,6 +130,8 @@ module RubyMotionQuery
|
||||
TIME = Regexp.new('^(20|21|22|23|[01]\d|\d)((:[0-5]\d){1,2})$')
|
||||
# Future Password strength validations -> http://stackoverflow.com/questions/5142103/regex-for-password-strength
|
||||
USZIP = Regexp.new('^\d{5}(-\d{4})?$')
|
||||
# UK Postal Code regex from: http://stackoverflow.com/a/7259020/814123
|
||||
UKZIP = Regexp.new('^(GIR ?0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]([0-9ABEHMNPRV-Y])?)|[0-9][A-HJKPS-UW]) ?[0-9][ABD-HJLNP-UW-Z]{2})$')
|
||||
# 7 or 10 digit number, delimiters are spaces, dashes, or periods
|
||||
USPHONE = Regexp.new('^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})$')
|
||||
# Strong password (at least [8 chars, 1 upper, 1 lower, 1 number])
|
||||
@@ -150,6 +152,7 @@ module RubyMotionQuery
|
||||
:ipv4 => lambda { |value, opts| Validation.regex_match?(value, IPV4)},
|
||||
:time => lambda { |value, opts| Validation.regex_match?(value, TIME)},
|
||||
:uszip => lambda { |value, opts| Validation.regex_match?(value, USZIP)},
|
||||
:ukzip => lambda { |value, opts| Validation.regex_match?(value.upcase, UKZIP)},
|
||||
:usphone => lambda { |value, opts| Validation.regex_match?(value, USPHONE)},
|
||||
:strong_password => lambda { |value, opts| Validation.regex_match?(value, STRONGPW)},
|
||||
:has_upper => lambda { |value, opts| Validation.regex_match?(value, HASUPPER)},
|
||||
|
||||
@@ -65,6 +65,27 @@ describe 'validation' do
|
||||
@rmq.validation.valid?('K1A 0B1', :uszip).should == false
|
||||
end
|
||||
|
||||
it 'can validate ukzip' do
|
||||
# Zips with spaces
|
||||
['TS4 2EP', 'DE55 7JW', 'DN31 3BL', 'KW9 6NQ', 'UB11 1FG', 'LS21 1FE', 'EC2P 2DS'].each do |code|
|
||||
@rmq.validation.valid?(code, :ukzip).should == true
|
||||
end
|
||||
|
||||
# Zips without spaces
|
||||
['CT54FG', 'TA100PF', 'OX29EF', 'SS95FB', 'BT411LA', 'NN126QP', 'CF991NA', 'NP167NH', 'PE57XG'].each do |code|
|
||||
@rmq.validation.valid?(code, :ukzip).should == true
|
||||
end
|
||||
|
||||
# Invalid Zips
|
||||
['32043', '90210-2344', 'OB29E', 'SS95B', 'BT11A'].each do |code|
|
||||
@rmq.validation.valid?(code, :ukzip).should == false
|
||||
end
|
||||
|
||||
# Lowercase zips
|
||||
@rmq.validation.valid?('ts4 2ep', :ukzip).should == true
|
||||
@rmq.validation.valid?('ct54fg', :ukzip).should == true
|
||||
end
|
||||
|
||||
it 'can validate usphone' do
|
||||
@rmq.validation.valid?('504 555 8989', :usphone).should == true
|
||||
@rmq.validation.valid?('555 8989', :usphone).should == true
|
||||
|
||||
Reference in New Issue
Block a user