validator-pk
Version:
A lightweight library for validating and formatting Pakistani phone numbers and CNIC.
36 lines • 4.89 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class ValidatorPKService {
constructor() { }
}
ValidatorPKService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ValidatorPKService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
ValidatorPKService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ValidatorPKService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ValidatorPKService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return []; } });
export function formatPhoneNumber(phoneNumber) {
let formattedNumber = phoneNumber;
if (phoneNumber.startsWith('+92')) {
formattedNumber = phoneNumber.replace(/^(\+92)(\d{3})(\d{7})$/, '$1 $2 $3');
}
else if (phoneNumber.startsWith('03')) {
formattedNumber = phoneNumber.replace(/^(03)(\d{2})(\d{7})$/, '$1$2 $3');
}
return formattedNumber;
}
export function validatePhoneNumber(phoneNumber) {
const validPattern = /^(\+92\s?\d{3}\s?\d{7}|03\d{2}\s?\d{7})$/;
return { isValid: validPattern.test(phoneNumber.replace(/\s+/g, '')) };
}
export function validateCNIC(cnic) {
const cnicRegex = /^\d{5}-?\d{7}-?\d$/;
return { isValid: cnicRegex.test(cnic) };
}
export function formatCNIC(cnic) {
const sanitizedCNIC = cnic.replace(/-/g, '');
return sanitizedCNIC.replace(/^(\d{5})(\d{7})(\d)$/, '$1-$2-$3');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLXBrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy92YWxpZGF0b3ItcGsvc3JjL2xpYi92YWxpZGF0b3ItcGsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLGdCQUFnQixDQUFDOztnSEFGTixrQkFBa0I7b0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBTUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFdBQW1CO0lBQ25ELElBQUksZUFBZSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDakMsZUFBZSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsVUFBVSxDQUFDLENBQUM7S0FDN0U7U0FBTSxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdkMsZUFBZSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDMUU7SUFDRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFdBQW1CO0lBQ3JELE1BQU0sWUFBWSxHQUFHLDBDQUEwQyxDQUFDO0lBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDekUsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBWTtJQUN2QyxNQUFNLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQztJQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFZO0lBQ3JDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNuRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9yUEtTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFBob25lTnVtYmVyKHBob25lTnVtYmVyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGxldCBmb3JtYXR0ZWROdW1iZXIgPSBwaG9uZU51bWJlcjtcclxuICBpZiAocGhvbmVOdW1iZXIuc3RhcnRzV2l0aCgnKzkyJykpIHtcclxuICAgIGZvcm1hdHRlZE51bWJlciA9IHBob25lTnVtYmVyLnJlcGxhY2UoL14oXFwrOTIpKFxcZHszfSkoXFxkezd9KSQvLCAnJDEgJDIgJDMnKTtcclxuICB9IGVsc2UgaWYgKHBob25lTnVtYmVyLnN0YXJ0c1dpdGgoJzAzJykpIHtcclxuICAgIGZvcm1hdHRlZE51bWJlciA9IHBob25lTnVtYmVyLnJlcGxhY2UoL14oMDMpKFxcZHsyfSkoXFxkezd9KSQvLCAnJDEkMiAkMycpO1xyXG4gIH1cclxuICByZXR1cm4gZm9ybWF0dGVkTnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQaG9uZU51bWJlcihwaG9uZU51bWJlcjogc3RyaW5nKTogeyBpc1ZhbGlkOiBib29sZWFuIH0ge1xyXG4gIGNvbnN0IHZhbGlkUGF0dGVybiA9IC9eKFxcKzkyXFxzP1xcZHszfVxccz9cXGR7N318MDNcXGR7Mn1cXHM/XFxkezd9KSQvOyBcclxuICByZXR1cm4geyBpc1ZhbGlkOiB2YWxpZFBhdHRlcm4udGVzdChwaG9uZU51bWJlci5yZXBsYWNlKC9cXHMrL2csICcnKSkgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQ05JQyhjbmljOiBzdHJpbmcpOiB7IGlzVmFsaWQ6IGJvb2xlYW4gfSB7XHJcbiAgY29uc3QgY25pY1JlZ2V4ID0gL15cXGR7NX0tP1xcZHs3fS0/XFxkJC87XHJcbiAgcmV0dXJuIHsgaXNWYWxpZDogY25pY1JlZ2V4LnRlc3QoY25pYykgfTsgXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDTklDKGNuaWM6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgY29uc3Qgc2FuaXRpemVkQ05JQyA9IGNuaWMucmVwbGFjZSgvLS9nLCAnJyk7XHJcbiAgcmV0dXJuIHNhbml0aXplZENOSUMucmVwbGFjZSgvXihcXGR7NX0pKFxcZHs3fSkoXFxkKSQvLCAnJDEtJDItJDMnKTtcclxufSJdfQ==