Skip to content

agustinbouillet/numero-telefono-argentino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Validador de números de teléfono argentinos

Uso

var tel = new TelefonoArgentino('5491150716006');

Métodos

getData()

Retorna un array asociativo con los tipos de datos pertenecienes al número telefónico. Si el número de teléfono es incorrecto retorna: false

tel.getData();
Ejemplo datos de retorno
{
    area_code : "11",
    country :"54",
    filter_input :"5491150716006",
    format :"+54 9 11 5071-6006",
    htmlify :"<span class="country">+54</span> <span class="mobile">9</span> <span class="area_code">11</span> <span class="number">5071-6006</span>"
    input :"5491150716006",
    international : false,
    mobile :"9",
    mobile_prefix : false,
    national_call : false,
    number :"50716006",
    special : false,
    specific : false,
    type :"mobile",
}

input()

Retorna el string ingresado para validar.

tel.input();

isValid()

Tipo booleano true | false.

tel.isValid();

getType()

Retorna el tipo de teléfono. Los tipos puenden ser:

  • landline Teléfono fijo.
  • mobile Teléfono móvil.
  • special Comprendido por los números como: 911, 112, 113, 114, etc.
  • specific Comprendido por los números como: 0800, 0810, etc.
tel.getType();

invalidChars()

Retorna un array con la lista de caracteres inválidos. Si no existieran caracteres inválidos el retorno es: false

tel.invalidChars();
Ejemplo
var tel = new TelefonoArgentino('54911501;><76006^%$^%$^');
tel.invalidChars();

// Resultado
[";", ">", "<", "^", "%", "$"]

htmlify()

Retorna el número de teléfono con cada una de sus partes encapsuladas en una etiqueta `<span/>``

Ejemplo
new TelefonoArgentino("+54 9 11 4639-1234").htmlify();

Retorna

<span class="country" data-country="1">+54</span> <span class="mobile" data-mobile="1">9</span> <span class="area-code" data-area_code="1">11</span> <span class="number" data-number="1">4639-1234</span>

Opciones

Formatos de salida

Formato

Para darle formato al número de teléfono puede configurarse un template y pasarlo al parámetro opciones usando la clave: format.

El formato por defecto contempla todos los formatos y tipos de teléfono que valida el script.

{
    format: '{{specific}}{{special}}{{international|add_after:" "}}{{country|add_after:" "}}{{mobile|add_after:" "}}{{national_call}}{{area_code|add_after:" "}}{{mobile_prefix|add_after:" "}} {{number}}'
}

El formato solo acepta las claves de retorno del script; ejemplo: area_code, country, etc. Para parsear la clave con el valor se debe encerrar la clave entre doble llave, así: {{ clave }}.

Las claves pueden ir separadsas o concatenadas por una coma, de este modo: {{ area_code,number }}.

Para agregar un elemento antes o después del valor, se puede incorporar un solo parámetro con el elemento a agregar, antes o después (before, after en inglés); del siguiente modo:

'{{ area_code|add_after:"-" }}'

// 11-
'{{ area_code|add_after:"+",number|add_before:"=" }}'

// 11+=4639-2313

También se pueden utilizar las claves por separado; sin usar la concatenación.

'{{ area_code|add_after:"+" }}{{ number|add_before:"=" }}'

// 11+=4639-2313

Es importante tener en cuenta que si la clave no tiene valor, si éste es false; no va a imprimir nada, y esto incluye el separador.

Ejemplos

Caso con número, código de área y código país.

const tel = new TelefonoArgentino(
    "54.3624448012",
    {
        format: '({{ country|add_after:"-" }}{{ area_code }}){{ number|add_before:" " }}'
    }
);
tel.getData().format;

// '(+54-362) 444-8012'

Sin código de país.

const tel = new TelefonoArgentino(
    "11 4639-1234",
    {
        format: '({{ country|add_after:"-" }}{{ area_code }}){{ number|add_before:" " }}'
    }
);
tel.getData().format;

// '(11) 4639-1234'

Sin código de pais y código de área. Cómo el paréntesis queda vacío, se remueve. Los espacios y elementos agregados antes y después, no se imprimen.

const tel = new TelefonoArgentino(
    "4639-1234",
    {
        format: '({{ country|add_after:"-" }}{{ area_code }}){{ number|add_before:" " }}'
    }
);
tel.getData().format;

// '4639-1234'

Formato de número

El número puede estar segmentado en la cantidad de partes que se desee utilizando la combinación del caracter numeral y guión. El formato se debe pensar de derecha a izquierda. Por ejemplo; para que un número de ocho dígitos se divida en miles, el formato sería este: ##-###-###. El número 12345678, qudaría de este modo: 12-345-678.

Algunos casos

const tel = new TelefonoArgentino("+54.3624448012", {numberFormat: "##-###-###"});
tel.getData().format;

// '+54 362 4-448-012'
const tel = new TelefonoArgentino("+54.3624448012", {numberFormat: "##-##-##-##"});
tel.getData().format;

// '+54 362 4-44-80-12'

Se puede incorporar el parámetro numberFormatSeparator, para cambiar el separador de dígitos.

const tel = new TelefonoArgentino(
    "54.3624448012",
    {
        numberFormat: "##-###-###", 
        numberFormatSeparator: "."
    }
);
tel.getData().format;

// '+54 362 4.448.012'

Información geográfica

La información referenciada de las regiones se puede obtener de un Google spreadsheet en:

https://sheets.googleapis.com/v4/spreadsheets/14H7VE3zfllDDTC73L0bL7nyjkdodPMXvqs1CH__xgFY/values/db?key={{your-google-api-key}}&alt=json

O usar el archivo response.json ubicado dentro del directorio data, dentro del repositorio.

Ejemplo de conexión con google sheet

/**
 * Fetch data by area code
 */
async function regionByAreaCode(options = {}) {
    let data = [];
    const uri = "https://sheets.googleapis.com/v4/spreadsheets/14H7VE3zfllDDTC73L0bL7nyjkdodPMXvqs1CH__xgFY/values/db?key={{your-google-api-key}}&alt=json";
    let response = await fetch(uri, options);
    data = await response.json();
    return data;
}


// Validate
const tel = new TelefonoArgentino("+54 9 11 5017-6006");
console.log(tel.getData());

regionByAreaCode().then((data) => {
    const values = data.values.find((f) => f[0] == tel.getData().area_code);
    console.log(values);
});

Demo

Referencias


paypal