浏览代码

Merge branch 'master' of https://github.com/zmira/bootstrapvalidator into zmira-master

Conflicts:
	src/js/validator/zipCode.js
Phuoc Nguyen 11 年之前
父节点
当前提交
c34853c02f
共有 2 个文件被更改,包括 30 次插入1 次删除
  1. 7 1
      src/js/validator/zipCode.js
  2. 23 0
      test/spec/validator/zipCode.js

+ 7 - 1
src/js/validator/zipCode.js

@@ -15,6 +15,7 @@
             IT: 'Italy',
             MA: 'Morocco',
             NL: 'Netherlands',
+            PT: 'Portugal',
             RO: 'Romania',
             RU: 'Russia',
             SE: 'Sweden',
@@ -30,7 +31,7 @@
             country: 'country'
         },
 
-        COUNTRY_CODES: ['BR', 'CA', 'CZ', 'DE', 'DK', 'FR', 'GB', 'IE', 'IT', 'MA', 'NL', 'RO', 'RU', 'SE', 'SG', 'SK', 'US'],
+        COUNTRY_CODES: ['BR', 'CA', 'CZ', 'DE', 'DK', 'FR', 'GB', 'IE', 'IT', 'MA', 'NL', 'PT', 'RO', 'RU', 'SE', 'SG', 'SK', 'US'],
 
         /**
          * Return true if and only if the input value is a valid country zip code
@@ -124,6 +125,11 @@
                 case 'NL':
                     isValid = /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i.test(value);
                     break;
+                
+                // Test: http://refiddle.com/1l2t
+                case 'PT':
+                    isValid = /^[1-9]\d{3}-\d{3}$/.test(value);
+                    break;
                     
                 case 'RO':
                     isValid = /^(0[1-8]{1}|[1-9]{1}[0-5]{1})?[0-9]{4}$/i.test(value);

+ 23 - 0
test/spec/validator/zipCode.js

@@ -30,6 +30,7 @@ describe('zipCode', function() {
                             '<option value="IE">Ireland</option>',
                             '<option value="IT">Italy</option>',
                             '<option value="NL">Netherlands</option>',
+                            '<option value="PT">Portugal</option>',
                             '<option value="SE">Sweden</option>',
                             '<option value="SK">Slovakia</option>',
                             '<option value="US">United States</option>',
@@ -294,4 +295,26 @@ describe('zipCode', function() {
             expect(this.bv.isValid()).toEqual(false);
         }
     });
+    
+    it('Portugal postal code', function() {
+        this.bv.updateOption('zc', 'zipCode', 'country', 'PT');
+
+        // Valid samples
+        var validSamples = ['2435-459', '1000-000', '1234-456'];
+        for (var i in validSamples) {
+            this.bv.resetForm();
+            this.$zipCode.val(validSamples[i]);
+            this.bv.validate();
+            expect(this.bv.isValid()).toBeTruthy();
+        }
+
+        // Invalid samples
+        var invalidSamples = ['0123-456', '1234456', '1234-ABC', '1234 456'];
+        for (i in invalidSamples) {
+            this.bv.resetForm();
+            this.$zipCode.val(invalidSamples[i]);
+            this.bv.validate();
+            expect(this.bv.isValid()).toEqual(false);
+        }
+    });
 });