Skip to content

Instantly share code, notes, and snippets.

@BrettBailey
BrettBailey / Postcode Validator
Created June 1, 2015 23:30
UK Postcode Validator using angular js and ng-pattern. Full Explanation at http://www.clearcoders.co.uk/
<div class="form-group">
<div class="col-xs-7">
<label for="postcode">Postcode</label>
<input type="text" name="postcode" placeholder="Postcode" ng-pattern="/^[a-z]{1,2}[0-9][a-z0-9]?\s?[0-9][a-z]{2}$/i" required ng-minlength="5" ng-maxlength="8" ng-model="complaint.postcode" ng-change="formatPostcode()" class="form-control" />
<div class="col-xs-12" ng-messages="reclaim.postcode.$error" ng-if="reclaim.$submitted || reclaim.postcode.$dirty">
<div class="text-warning" ng-message="minlength">Postcode is too short.</div>
<div class="text-warning" ng-message="pattern">Postcode is not in the correct format.</div>
<div class="text-warning" ng-message="maxlength">Postcode is too long.</div>
</div>
</div>
@BrettBailey
BrettBailey / format postcode
Created June 1, 2015 23:25
Formats a validated postcode by upper-casing and restoring the space if needed
$scope.formatPostcode = function() {
var postcode = $scope.complaint.postcode.toUpperCase(),
index = postcode.length - 3;
if (postcode.charAt(index - 1) == " ") return;
return $scope.complaint.postcode = postcode.substr(0, index) + ' ' + postcode.substr(index);
}