telefono-argentino
v2.0.4
Published
Validador de números de teléfono argentinos
Maintainers
Readme
Validador de números de teléfono argentinos
Este script valida números de teléfono argentinos utilizando el listado oficial de numeración geográfica publicada por ENACOM (Ente Nacional de Comunicaciones).
La validación, para números no específicos, se basa en comparar el código de área y el bloque numérico asignado a cada una de las operadoras. Si estas condiciones se cumplen, se considera que los números subsiguientes podrían pertenecer a un abonado.
Actualmente, no existe un servicio que permita verificar si un número completo (código de área, bloque y número asignado), pertenece efectivamente a un abonado en servicio. Por lo tanto, este script asume esa posibilidad, quedando su interpretación y uso a criterio del usuario.
Versión numeración geográfica (ENACOM): 13 de marzo de 2025.
Versión actual
2.0.4
Obtener versión
(new TelefonoArgentino).version;
// '2.0.4'o
const tel = new TelefonoArgentino("+5491150176006");
tel.version;
// '2.0.4'Instalación
NPM
npm i telefono-argentinoYarn
yarn add telefono-argentinoCDN
jsDelivr
https://www.jsdelivr.com/package/npm/telefono-argentino
Uso
var tel = new TelefonoArgentino('5491150176006');Métodos
getData()
Retorna un objeto con los datos pertenecientes 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 :"5491150176006",
format :"+54 9 11 5017-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 :"5491150176006",
international : false,
mobile :"9",
mobile_prefix : false,
national_call : false,
number :"50176006",
special : false,
specific : false,
type :"mobile",
block_number: "5017",
given_number: "6006"
}input()
Retorna el string ingresado para validar.
tel.input();isValid()
Retorna un valor booleano: true | false.
tel.isValid();getType()
Retorna el tipo de teléfono. Los tipos pueden ser:
landlineTeléfono fijo.mobileTeléfono móvil.specialComprendido por los números como: 911, 112, 113, 114, etc.specificComprendido por los números como: 0800, 0810, etc.
tel.getType();invalidChars()
Retorna un array con la lista de caracteres inválidos. Si no existen caracteres inválidos, retorna 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 (por ejemplo: area_code, country, etc.). Para reemplazar la clave por su valor, se debe encerrar la clave entre doble llave: {{ clave }}.
Las claves pueden ir separadas o concatenadas mediante una coma: {{ area_code,number }}.
Para agregar un elemento antes o después del valor, se puede incorporar un parámetro con add_before o add_after del siguiente modo:
'{{ area_code|add_after:"-" }}'
// 11-'{{ area_code|add_after:"+",number|add_before:"=" }}'
// 11+=4639-2313También se pueden utilizar las claves por separado; sin usar la concatenación.
'{{ area_code|add_after:"+" }}{{ number|add_before:"=" }}'
// 11+=4639-2313Es importante tener en cuenta que si la clave no tiene valor, es decir, si es false, no se imprime nada, incluido 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 país y código de área. Como 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 segmentarse en la cantidad de partes que se desee utilizando la combinación del carácter 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:
##-###-###. El número 12345678 quedarí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=jsonO 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
- ENACOM — Ente Nacional de Comunicaciones.
- Numeración y señalización — ENACOM.
- Números telefónicos en Argentina — Wikipedia.

