UNPKG

phone-check-egypt

Version:

its a directive that gibe validation on mobile number using regex format .. # directive requirements :

83 lines (82 loc) 8.48 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Directive, ElementRef, HostListener, Input } from "@angular/core"; import { NgForm } from "@angular/forms"; export class OnlyNumberDirective { /** * @param {?} el */ constructor(el) { this.el = el; //this is regex for egypt Moblie number example 010/011/012/015-11111111 this.regex = /^[0]{1}[1]{1}[1|2|5|0]{1}[0-9]{8}$/g; this.specialKeys = ["Backspace", "Tab", "End", "Home"]; if (this.el.nativeElement.required) { this.el.nativeElement.insertAdjacentHTML("afterend", '\n<div class="invalid-feedback">* Please Enter valid phone number.</div>'); } } /** * @param {?} event * @return {?} */ onKeyDown(event) { if (this.specialKeys.indexOf(event.key) !== -1) { return; } /** @type {?} */ let current = this.el.nativeElement.value; /** @type {?} */ let next = current.concat(event.key); if (next != "" || next != undefined || next != null) { if (next && next.length < this.el.nativeElement.max) { this.el.nativeElement.classList.remove("is-invalid"); } else if (next && next.length == this.el.nativeElement.max) { if (this.regex.test(next) == true) { this.el.nativeElement.classList.remove("is-invalid"); } else { this.el.nativeElement.classList.add("is-invalid"); this.formData.form.controls[this.el.nativeElement.name].setErrors({ incorrect: true }); } } else if (next && next.length > this.el.nativeElement.max) { event.preventDefault(); } } else { this.el.nativeElement.classList.add("is-invalid"); this.formData.form.controls[this.el.nativeElement.name].setErrors({ incorrect: true }); } } } OnlyNumberDirective.decorators = [ { type: Directive, args: [{ selector: "[OnlyNumber]" },] }, ]; /** @nocollapse */ OnlyNumberDirective.ctorParameters = () => [ { type: ElementRef } ]; OnlyNumberDirective.propDecorators = { formData: [{ type: Input, args: ["formData",] }], onKeyDown: [{ type: HostListener, args: ["keydown", ["$event"],] }] }; if (false) { /** @type {?} */ OnlyNumberDirective.prototype.formData; /** @type {?} */ OnlyNumberDirective.prototype.regex; /** @type {?} */ OnlyNumberDirective.prototype.specialKeys; /** @type {?} */ OnlyNumberDirective.prototype.el; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25seS1udW1iZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vcGhvbmUtY2hlY2stZWd5cHQvIiwic291cmNlcyI6WyJsaWIvb25seS1udW1iZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4QyxNQUFNOzs7O0lBUUosWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7O3FCQUoxQixxQ0FBcUM7MkJBRVIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7UUFHdEUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FDdEMsVUFBVSxFQUNWLDBFQUEwRSxDQUMzRSxDQUFDO1NBQ0g7S0FDRjs7Ozs7SUFHRCxTQUFTLENBQUMsS0FBb0I7UUFDNUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQyxNQUFNLENBQUM7U0FDUjs7UUFDRCxJQUFJLE9BQU8sR0FBVyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7O1FBQ2xELElBQUksSUFBSSxHQUFXLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTdDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLFNBQVMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwRCxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3REO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzVELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2xDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ3REO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUNOLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7d0JBQ2hFLFNBQVMsRUFBRSxJQUFJO3FCQUNoQixDQUFDLENBQUM7aUJBQ0o7YUFDRjtZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUMzRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDeEI7U0FDRjtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNoRSxTQUFTLEVBQUUsSUFBSTthQUNoQixDQUFDLENBQUM7U0FDSjtLQUNGOzs7WUFqREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxjQUFjO2FBQ3pCOzs7O1lBSm1CLFVBQVU7Ozt1QkFNM0IsS0FBSyxTQUFDLFVBQVU7d0JBZ0JoQixZQUFZLFNBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBcIltPbmx5TnVtYmVyXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPbmx5TnVtYmVyRGlyZWN0aXZlIHtcclxuICBASW5wdXQoXCJmb3JtRGF0YVwiKVxyXG4gIGZvcm1EYXRhOiBOZ0Zvcm07XHJcbiAgLy90aGlzIGlzIHJlZ2V4IGZvciAgZWd5cHQgTW9ibGllIG51bWJlciBleGFtcGxlIDAxMC8wMTEvMDEyLzAxNS0xMTExMTExMVxyXG4gIHJlZ2V4ID0gL15bMF17MX1bMV17MX1bMXwyfDV8MF17MX1bMC05XXs4fSQvZztcclxuXHJcbiAgcHJpdmF0ZSBzcGVjaWFsS2V5czogQXJyYXk8c3RyaW5nPiA9IFtcIkJhY2tzcGFjZVwiLCBcIlRhYlwiLCBcIkVuZFwiLCBcIkhvbWVcIl07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lmluc2VydEFkamFjZW50SFRNTChcclxuICAgICAgICBcImFmdGVyZW5kXCIsXHJcbiAgICAgICAgJ1xcbjxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+KiBQbGVhc2UgRW50ZXIgdmFsaWQgcGhvbmUgbnVtYmVyLjwvZGl2PidcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duXCIsIFtcIiRldmVudFwiXSlcclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLnNwZWNpYWxLZXlzLmluZGV4T2YoZXZlbnQua2V5KSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGN1cnJlbnQ6IHN0cmluZyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgIGxldCBuZXh0OiBzdHJpbmcgPSBjdXJyZW50LmNvbmNhdChldmVudC5rZXkpO1xyXG5cclxuICAgIGlmIChuZXh0ICE9IFwiXCIgfHwgbmV4dCAhPSB1bmRlZmluZWQgfHwgbmV4dCAhPSBudWxsKSB7XHJcbiAgICAgIGlmIChuZXh0ICYmIG5leHQubGVuZ3RoIDwgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm1heCkge1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiaXMtaW52YWxpZFwiKTtcclxuICAgICAgfSBlbHNlIGlmIChuZXh0ICYmIG5leHQubGVuZ3RoID09IHRoaXMuZWwubmF0aXZlRWxlbWVudC5tYXgpIHtcclxuICAgICAgICBpZiAodGhpcy5yZWdleC50ZXN0KG5leHQpID09IHRydWUpIHtcclxuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiaXMtaW52YWxpZFwiKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJpcy1pbnZhbGlkXCIpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtRGF0YS5mb3JtLmNvbnRyb2xzW3RoaXMuZWwubmF0aXZlRWxlbWVudC5uYW1lXS5zZXRFcnJvcnMoe1xyXG4gICAgICAgICAgICBpbmNvcnJlY3Q6IHRydWVcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChuZXh0ICYmIG5leHQubGVuZ3RoID4gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm1heCkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiaXMtaW52YWxpZFwiKTtcclxuICAgICAgdGhpcy5mb3JtRGF0YS5mb3JtLmNvbnRyb2xzW3RoaXMuZWwubmF0aXZlRWxlbWVudC5uYW1lXS5zZXRFcnJvcnMoe1xyXG4gICAgICAgIGluY29ycmVjdDogdHJ1ZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19