commit 1c39d7c02b0393035e91f481d9167be2549d8b04 Author: Christopher Vagnetoft Date: Sun Oct 30 20:40:04 2022 +0100 Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..d2b2dfe --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# Postal Dataset + +This is a dataset for noccylabs/dataset holding postal code patterns for +validating postal codes. + + +## Datasets + +### postalcode + +Field | Type | Description +---|---|--- +`iso` | string | The ISO 2-letter country code +`format` | array | Valid formats, see below +`regex` | string | Unguarded regex to validate against + + +- The value in `format` is treated literal, except for the following characters: + `#` indicates a number, `?` indicates a digit, and `*` indicates either a number + or digit. +- The regex must be bounded, for example as `"<^".$regex."$>"`. This is done so + that multiple expressions can be combined easily. diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..7bdf1c6 --- /dev/null +++ b/composer.json @@ -0,0 +1,8 @@ +{ + "name": "noccylabs/dataset-postal", + "description": "Dataset containing postal code validation patterns", + "license": "CC-BY-SA-4.0", + "suggest": { + "noccylabs/dataset": "to parse the dataset" + } +} diff --git a/data/postalcodes.json b/data/postalcodes.json new file mode 100644 index 0000000..aa82df3 --- /dev/null +++ b/data/postalcodes.json @@ -0,0 +1,47 @@ +[ + { + "iso": "se", + "format": [ "??? ??", "?????" ], + "regex": "(\d{3}\s{0,1}\d{2})" + }, + { + "iso": "no", + "format": [ "????" ], + "regex": "(\d{4})" + }, + { + "iso": "dk", + "format": [ "????", "DK-????" ], + "regex": "((DK-){0,1}\d{4})" + }, + { + "iso": "fi", + "format": [ "?????", "FI-?????" ], + "regex": "((FI-){0,1}\d{5})" + }, + { + "iso": "ax", + "format": [ "?????", "AX-?????" ], + "regex": "((AX-){0,1}\d{5})" + }, + { + "iso": "es", + "format": [ "?????", "EE-?????" ], + "regex": "((EE-){0,1}\d{5})" + }, + { + "iso": "lv", + "format": [ "##-????" ], + "regex": "([a-z]{2}-\d{4})" + }, + { + "iso": "lt", + "format": [ "##-?????" ], + "regex": "([a-z]{2}-\d{5})" + }, + { + "iso": "pl", + "format": [ "??-???" ], + "regex": "(\d{2}-\d{3})" + } +] diff --git a/dataset.json b/dataset.json new file mode 100644 index 0000000..0b6b99e --- /dev/null +++ b/dataset.json @@ -0,0 +1,7 @@ +{ + "datasets": { + "postalcodes": { + "filename": "data/postalcodes.json" + } + } +}