UNPKG

@edugouvfr/ngx-dsfr

Version:

NgxDsfr est un portage Angular des éléments d'interface du Système de Design de l'État Français (DSFR).

32 lines 4.15 kB
const REGEXP_PHONE_NUMBER = /^\(?(\+\d{2})?\)?\s?0?(\d(\s?\d{2}){4})$/; /** * Teste si le numéro de téléphone correspond au pattern (soit celui de l'input, soit un pattern par défaut) */ export function isPhoneNumberValid(value, pattern) { if (!value) return false; const regexp = pattern ? new RegExp(pattern) : REGEXP_PHONE_NUMBER; const matchArr = regexp.exec(value); return matchArr ? true : false; } /** * Formatage du n° de téléphone. * Le formatage ne se fait que dans le cas où on utilise le pattern par défaut */ export function formatPhoneNumber(value, pattern) { if (!value) return ''; if (pattern) return value; const regexp = REGEXP_PHONE_NUMBER; const matchArr = regexp.exec(value); if (!matchArr) return value; let num = value; let country = matchArr[1]; num = matchArr[2].replace(/ /g, ''); num = num.replace(/(\d)(\d{2})(\d{2})(\d{2})(\d{2})/, '$1 $2 $3 $4 $5'); num = country ? `(${country}) ${num}` : `0${num}`; return num; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWRzZnItY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zL2Zvcm0tdGVsL3Bob25lLW51bWJlci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLG1CQUFtQixHQUFHLDBDQUEwQyxDQUFDO0FBRXZFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQXlCLEVBQUUsT0FBZ0I7SUFDNUUsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUV6QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztJQUNuRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNqQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQXlCLEVBQUUsT0FBZ0I7SUFDM0UsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN0QixJQUFJLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQztJQUUxQixNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQztJQUNuQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFNUIsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsa0NBQWtDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUN4RSxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNsRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBSRUdFWFBfUEhPTkVfTlVNQkVSID0gL15cXCg/KFxcK1xcZHsyfSk/XFwpP1xccz8wPyhcXGQoXFxzP1xcZHsyfSl7NH0pJC87XG5cbi8qKlxuICogVGVzdGUgc2kgbGUgbnVtw6lybyBkZSB0w6lsw6lwaG9uZSBjb3JyZXNwb25kIGF1IHBhdHRlcm4gKHNvaXQgY2VsdWkgZGUgbCdpbnB1dCwgc29pdCB1biBwYXR0ZXJuIHBhciBkw6lmYXV0KVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQaG9uZU51bWJlclZhbGlkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQsIHBhdHRlcm4/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IHJlZ2V4cCA9IHBhdHRlcm4gPyBuZXcgUmVnRXhwKHBhdHRlcm4pIDogUkVHRVhQX1BIT05FX05VTUJFUjtcbiAgY29uc3QgbWF0Y2hBcnIgPSByZWdleHAuZXhlYyh2YWx1ZSk7XG4gIHJldHVybiBtYXRjaEFyciA/IHRydWUgOiBmYWxzZTtcbn1cblxuLyoqXG4gKiBGb3JtYXRhZ2UgZHUgbsKwIGRlIHTDqWzDqXBob25lLlxuICogTGUgZm9ybWF0YWdlIG5lIHNlIGZhaXQgcXVlIGRhbnMgbGUgY2FzIG/DuSBvbiB1dGlsaXNlIGxlIHBhdHRlcm4gcGFyIGTDqWZhdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFBob25lTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQsIHBhdHRlcm4/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XG4gIGlmIChwYXR0ZXJuKSByZXR1cm4gdmFsdWU7XG5cbiAgY29uc3QgcmVnZXhwID0gUkVHRVhQX1BIT05FX05VTUJFUjtcbiAgY29uc3QgbWF0Y2hBcnIgPSByZWdleHAuZXhlYyh2YWx1ZSk7XG4gIGlmICghbWF0Y2hBcnIpIHJldHVybiB2YWx1ZTtcblxuICBsZXQgbnVtID0gdmFsdWU7XG4gIGxldCBjb3VudHJ5ID0gbWF0Y2hBcnJbMV07XG4gIG51bSA9IG1hdGNoQXJyWzJdLnJlcGxhY2UoLyAvZywgJycpO1xuICBudW0gPSBudW0ucmVwbGFjZSgvKFxcZCkoXFxkezJ9KShcXGR7Mn0pKFxcZHsyfSkoXFxkezJ9KS8sICckMSAkMiAkMyAkNCAkNScpO1xuICBudW0gPSBjb3VudHJ5ID8gYCgke2NvdW50cnl9KSAke251bX1gIDogYDAke251bX1gO1xuICByZXR1cm4gbnVtO1xufVxuIl19