export function PostcodeDirectiveFactory() { return new PostcodeDirective(); } class PostcodeDirective implements angular.IDirective { require = 'ngModel'; restrict = 'A'; link = function (scope, elm, attrs, ctrl) { ctrl.$validators.postcode = function (modelValue, viewValue) { return PostcodeRegex.test(viewValue); } } } const PostcodeRegex = /^[A-Z]{1,2}[0-9]{1,2}[A-Z]{0,1} ?[0-9][A-Z]{2}$/i