Skip to content

Commit

Permalink
Bump to v3.0.0
Browse files Browse the repository at this point in the history
- Remove 'CS' country code
- Update Readme
  • Loading branch information
sarcadass committed Feb 26, 2020
1 parent 5b7c811 commit 758e1af
Show file tree
Hide file tree
Showing 7 changed files with 217 additions and 139 deletions.
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
## v3.0.0

### Features

- ⚠️ Remove [obsolete](https://en.wikipedia.org/wiki/ISO_3166-2:CS) **CS** code (Serbia and Montenegro). Use **RS** (Serbia) & **ME** (Montenegro) that already exist in the lib.

### Miscellaneous

- Update README

---

## v2.0.0

### Features
Expand Down
310 changes: 183 additions & 127 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,152 +1,208 @@
[![Build Status](https://travis-ci.org/sarcadass/i18n-zipcodes.svg?branch=master)](https://travis-ci.org/sarcadass/i18n-zipcodes)

# i18n-zipcodes
International zipcodes validator based on Regex for Node.js and the browser.
International zipcodes validator in Javascript, based on Regex for Node.js and the browser.


## Install
**For Node.js:**

### For Node.js:
```sh
$ npm install --save i18n-zipcodes
$ npm install i18n-zipcodes
```

**For the browser:**
### For the browser:
* Download the script in the `dist` folder


## Usage
**For Node.js**

```js
var i18nZipcodes = require('i18n-zipcodes');
// i18nZipcodes(countryCode, zipCode)
i18nZipcodes(countryCode: string, zipCode: string): boolean
// countryCode param is case insensitive
```

### For Node.js
```js
// CommonJS Syntax
const i18nZipcodes = require('i18n-zipcodes');
// or ES Syntax
import i18nZipcodes from 'i18n-zipcodes';

i18nZipcodes('US', '90210'); // true

i18nZipcodes('fr', '5632'); // false
```

**For the browser:**
### For the browser
```html
<script src="i18n-zipcodes.min.js"></script>
<script>
console.log(i18nZipcodes('fr', '75014')); // true
</script>
```

## 116 Countries supported
Country codes use the [ISO 3166-1](https://fr.wikipedia.org/wiki/ISO_3166-1) format.

'ad',
'ar',
'bm',
'bn',
'br',
'ca',
'fo',
'fr',
'gb',
'ge',
'ie',
'jp',
'kr',
'lv',
'mv',
'mt',
'nl',
'pl',
'pt',
'sz',
'tw',
'us',
'is',
'mg',
'at',
'au',
'bd',
'be',
'bg',
'ch',
'cx',
'cy',
'dk',
'gl',
'gw',
'hu',
'li',
'lu',
'md',
'mk',
'mz',
'no',
'nz',
'ph',
'sd',
'si',
'tn',
've',
'xk',
'za',
'as',
'ba',
'cs',
'cu',
'de',
'dz',
'ee',
'es',
'fi',
'fm',
'gf',
'gp',
'gt',
'gu',
'hr',
'ic',
'id',
'il',
'it',
'ke',
'kw',
'lt',
'ma',
'me',
'mh',
'mm',
'mp',
'mq',
'mx',
'my',
'pk',
'pm',
'pr',
'ps',
'pw',
're',
'sa',
'sm',
'th',
'tr',
'ua',
'uy',
'vi',
'vn',
'yu',
'zm',
'am',
'az',
'bj',
'by',
'cn',
'in',
'kg',
'kz',
'mn',
'ro',
'rs',
'ru',
'sg',
'tj',
'tm',
'uz',
'cz',
'gr',
'se',
'sk'

## 115 Countries supported
Country codes use the [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) format.

### A
- 🇦🇩 (`AD`) Andorra
- 🇦🇲 (`AM`) Armenia
- 🇦🇷 (`AR`) Argentina
- 🇦🇸 (`AS`) American Samoa
- 🇦🇹 (`AT`) Austria
- 🇦🇺 (`AU`) Australia
- 🇦🇿 (`AZ`) Azerbaijan

### B
- 🇧🇦 (`BA`) Bosnia and Herzegovina
- 🇧🇩 (`BD`) Bangladesh
- 🇧🇪 (`BE`) Belgium
- 🇧🇬 (`BG`) Bulgaria
- 🇧🇯 (`BJ`) Benin
- 🇧🇲 (`BM`) Bermuda
- 🇧🇳 (`BN`) Brunei
- 🇧🇷 (`BR`) Brazil
- 🇧🇾 (`BY`) Belarus

### C
- 🇨🇦 (`CA`) Canada
- 🇨🇭 (`CH`) Switzerland
- 🇨🇳 (`CN`) China
- 🇨🇺 (`CU`) Cuba
- 🇨🇽 (`CX`) Christmas Island
- 🇨🇾 (`CY`) Cyprus
- 🇨🇿 (`CZ`) Czechia

### D
- 🇩🇪 (`DE`) Germany
- 🇩🇰 (`DK`) Denmark
- 🇩🇿 (`DZ`) Algeria

### E
- 🇪🇪 (`EE`) Estonia
- 🇪🇸 (`ES`) Spain

### F
- 🇫🇮 (`FI`) Finland
- 🇫🇲 (`FM`) Micronesia
- 🇫🇴 (`FO`) Faroe Islands
- 🇫🇷 (`FR`) France

### G
- 🇬🇪 (`GE`) Georgia
- 🇬🇫 (`GF`) French Guiana
- 🇬🇱 (`GL`) Greenland
- 🇬🇵 (`GP`) Guadeloupe
- 🇬🇷 (`GR`) Greece
- 🇬🇹 (`GT`) Guatemala
- 🇬🇺 (`GU`) Guam
- 🇬🇼 (`GW`) Guinea-Bissau

### H
- 🇭🇷 (`HR`) Croatia
- 🇭🇺 (`HU`) Hungary

### I
- 🇮🇨 (`IC`) Canary Islands
- 🇮🇩 (`ID`) Indonesia
- 🇮🇪 (`IE`) Ireland
- 🇮🇱 (`IL`) Israel
- 🇮🇳 (`IN`) Inde
- 🇮🇸 (`IS`) Iceland
- 🇮🇹 (`IT`) Italy

### J
- 🇯🇵 (`JP`) Japan

### K
- 🇰🇪 (`KE`) Kenya
- 🇰🇬 (`KG`) Kyrgyzstan
- 🇰🇷 (`KR`) South Korea
- 🇰🇼 (`KW`) Kuwait
- 🇰🇿 (`KZ`) Kazakhstan

### L
- 🇱🇮 (`LI`) Liechtenstein
- 🇱🇹 (`LT`) Lithuania
- 🇱🇺 (`LU`) Luxembourg
- 🇱🇻 (`LV`) Latvia

### M
- 🇲🇦 (`MA`) Morocco
- 🇲🇩 (`MD`) Moldova
- 🇲🇪 (`ME`) Montenegro
- 🇲🇬 (`MG`) Madagascar
- 🇲🇭 (`MH`) Marshall Islands
- 🇲🇰 (`MK`) North Macedonia
- 🇲🇲 (`MM`) Myanmar
- 🇲🇳 (`MN`) Mongolia
- 🇲🇵 (`MP`) Northern Mariana Islands
- 🇲🇶 (`MQ`) Martinique
- 🇲🇹 (`MT`) Malta
- 🇲🇻 (`MV`) Maldives
- 🇲🇽 (`MX`) Mexico
- 🇲🇾 (`MY`) Malaysia
- 🇲🇿 (`MZ`) Mozambique

### N
- 🇳🇱 (`NL`) Netherlands
- 🇳🇴 (`NO`) Norway
- 🇳🇿 (`NZ`) New Zealand

### P
- 🇵🇭 (`PH`) Philippines
- 🇵🇰 (`PK`) Pakistan
- 🇵🇱 (`PL`) Poland
- 🇫🇷 (`PM`) Saint Pierre and Miquelon
- 🇵🇷 (`PR`) Puerto Rico
- 🇵🇸 (`PS`) Palestine
- 🇵🇹 (`PT`) Portugal
- 🇵🇼 (`PW`) Palau

### R
- 🇷🇪 (`RE`) Réunion
- 🇷🇴 (`RO`) Romania
- 🇷🇸 (`RS`) Serbia
- 🇷🇺 (`RU`) Russian Federation

### S
- 🇸🇦 (`SA`) Saudi Arabia
- 🇸🇩 (`SD`) Sudan
- 🇸🇪 (`SE`) Sweden
- 🇸🇬 (`SG`) Singapore
- 🇸🇮 (`SI`) Slovenia
- 🇸🇰 (`SK`) Slovakia
- 🇸🇲 (`SM`) San Marino
- 🇸🇿 (`SZ`) Swaziland

### T
- 🇹🇭 (`TH`) Thailand
- 🇹🇯 (`TJ`) Tajikistan
- 🇹🇲 (`TM`) Turkmenistan
- 🇹🇳 (`TN`) Tunisia
- 🇹🇷 (`TR`) Turkey
- 🇹🇼 (`TW`) Taiwan

### U
- 🇺🇦 (`UA`) Ukraine
- 🇬🇧 (`UK`) United Kingdom
- 🇺🇸 (`US`) United States of America
- 🇺🇾 (`UY`) Uruguay
- 🇺🇿 (`UZ`) Uzbekistan

### V
- 🇻🇪 (`VE`) Venezuela
- 🇻🇮 (`VI`) Virgin Islands (U.S.)
- 🇻🇳 (`VN`) Viet Nam

### X
- 🇽🇰 (`XK`) Kosovo

### Y
- (`YU`) Yugoslavia

### Z
- 🇿🇦 (`ZA`) South Africa
- 🇿🇲 (`ZM`) Zambia
15 changes: 10 additions & 5 deletions dist/i18n-zipcodes.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
/*! i18n-zipcodes v2.0.0 - https://github.com/sarcadass/i18n-zipcodes */
/*! i18n-zipcodes v3.0.0 - https://github.com/sarcadass/i18n-zipcodes */
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
'use strict';

var zipRegexLib = require('./zipRegexLib.js');

module.exports = function(countryCode, zipCode) {
var countryCodeId, zipCodeId, zipCodeRegex, i;
var countryCodeId, zipCodeId, zipCodeRegex, i;
var libName = '[i18n-zipcodes]';

// Check the inputs
if (typeof countryCode == 'string' && typeof zipCode == 'string') {
countryCodeId = countryCode.trim().toLocaleLowerCase();
zipCodeId = zipCode.trim();

} else {
throw 'The arguments required are two strings: countryCode, zipCode';
throw libName + ' The arguments required are two strings: countryCode, zipCode.';
}

if (countryCodeId === 'gb') {
throw "[i18n-zipcodes] Since v.2.0.0, 'GB' has been replaced by 'UK'";
throw libName + " Since v.2.0.0, 'GB' has been replaced by 'UK'.";
}

if (countryCodeId === 'cs') {
throw libName + " Since v.3.0.0, 'CS' has been removed, use 'RS' and/or 'ME' instead.";
}

// Associate the good Regex for the countryCode input
Expand Down Expand Up @@ -79,7 +84,7 @@ module.exports = {
countryCode: [
'is|mg'.split('|'),
'at|au|bd|be|bg|ch|cx|cy|dk|gl|gw|hu|li|lu|md|mk|mz|no|nz|ph|sd|si|tn|ve|xk|za'.split('|'),
'as|ba|cs|cu|de|dz|ee|es|fi|fm|gf|gp|gt|gu|hr|ic|id|il|it|ke|kw|lt|ma|me|mh|mm|mp|mq|mx|my|pk|pm|pr|ps|pw|re|sa|sm|th|tr|ua|uy|vi|vn|yu|zm'.split('|'),
'as|ba|cu|de|dz|ee|es|fi|fm|gf|gp|gt|gu|hr|ic|id|il|it|ke|kw|lt|ma|me|mh|mm|mp|mq|mx|my|pk|pm|pr|ps|pw|re|sa|sm|th|tr|ua|uy|vi|vn|yu|zm'.split('|'),
'am|az|bj|by|cn|co|in|kg|kz|mn|ro|rs|ru|sg|tj|tm|uz'.split('|'),
'cz|gr|se|sk'.split('|')
],
Expand Down
Loading

0 comments on commit 758e1af

Please sign in to comment.