UI: Improve zip / postal code validation.

This commit is contained in:
Igor Kulikov 2017-09-29 10:27:59 +03:00
parent ec91b3b9f4
commit 2cf25e78ca
3 changed files with 28 additions and 5 deletions

View File

@ -277,10 +277,33 @@ function Contact($compile, $templateCache) {
"Zimbabwe"
];
var postalCodePatterns = {
"United States": "(\\d{5}([\\-]\\d{4})?)",
"Australia": "[0-9]{4}",
"Austria": "[0-9]{4}",
"Belgium": "[0-9]{4}",
"Brazil": "[0-9]{5}[\\-]?[0-9]{3}",
"Canada": "[A-Za-z][0-9][A-Za-z] [0-9][A-Za-z][0-9]",
"Denmark": "[0-9]{3,4}",
"Faroe Islands": "[0-9]{3,4}",
"Netherlands": "[1-9][0-9]{3}\\s?[a-zA-Z]{2}",
"Germany": "[0-9]{5}",
"Hungary": "[0-9]{4}",
"Italy": "[0-9]{5}",
"Japan": "\\d{3}-\\d{4}",
"Luxembourg": "(L\\s*(-|—|))\\s*?[\\d]{4}",
"Poland": "[0-9]{2}\\-[0-9]{3}",
"Spain": "((0[1-9]|5[0-2])|[1-4][0-9])[0-9]{3}",
"Sweden": "\\d{3}\\s?\\d{2}",
"United Kingdom": "[A-Za-z]{1,2}[0-9Rr][0-9A-Za-z]? [0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}"
};
var linker = function (scope, element) {
scope.countries = countries;
scope.postalCodePatterns = postalCodePatterns;
var template = $templateCache.get(contactTemplate);
element.html(template);

View File

@ -34,11 +34,11 @@
</md-input-container>
<md-input-container class="md-block">
<label translate>contact.postal-code</label>
<input name="zip" ng-model="contact.zip" ng-pattern="/^([0-9]*)$/">
<input name="zip" ng-model="contact.zip" ng-pattern="postalCodePatterns[contact.country]">
<div ng-messages="theForm.zip.$error" role="alert" multiple>
<div translate ng-message="pattern">contact.postal-code-invalid</div>
</div>
</md-input-container>
</md-input-container>
</div>
<md-input-container class="md-block">
<label translate>contact.address</label>

View File

@ -294,9 +294,9 @@ export default angular.module('thingsboard.locale', [])
"contact": {
"country": "Country",
"city": "City",
"state": "State",
"postal-code": "Postal code",
"postal-code-invalid": "Only digits are allowed.",
"state": "State / Province",
"postal-code": "Zip / Postal Code",
"postal-code-invalid": "Invalid Zip / Postal Code format.",
"address": "Address",
"address2": "Address 2",
"phone": "Phone",