Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

370
Vistas
Cómo usar la máscara de entrada en Javascript para Mac ID y número de teléfono

Quiero filtrar los números de teléfono y la identificación de Mac desde un campo de entrada... si la cadena comienza con '00', coloque dos puntos después de cada dos números enteros con caracteres y si comienza con cualquier otro número, no coloque dos puntos después de dos números. ...

 var dynamicMask = new IMask(document.getElementById('user'), { mask: [{ mask: '0*:**:**:**:**:**' }, { mask: /^\S*@?\S*$/ } ] }) <script src="https://unpkg.com/imask"></script> <div class="form-group"> <label>Mac id or phone</label> <input type="text" class="form-control" name="user" id="user" placeholder="Enter ..." /> </div>
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Es un poco complicado permitir múltiples formatos dependiendo de los valores. Los números de teléfono no tienen un estándar real (excepto los números iniciales de 00 o + para internacional, 0 para nacional y 1-9 para proveedor/ubicación al principio) y también pueden tener una longitud de 12 y apenas dependen del país/proveedor/ ubicación del objetivo.

Sugiero usar dos campos de entrada diferentes en lugar de dos formaciones según la longitud/valor de entrada.

Pero algo como esto lo hará:

 <input type="text" id="user"> <script> /* * This allows: @0123456789af, @01:23:45:67:89:af and 01:23:45:67:89:af threaded as mac address any other input like: 00:00:00:00:00 or 01:23:45:67:89:az handled as phone number (removes any non numeric value on focusout) */ IMask(user, { mask: /[@:0-9a-f]/gi, // allow anything prepare(char) { // allow only @, :, 0-9 and af for input // this allows: @[a-f0-9]{12} values to be entered or 00:00:00:00:00:00... return char.replace(/[^@:0-9a-f]/i, ''); }, commit(value, masked) { // leading @ will be removed // check if it contains already a : and has a length of 6 sets with 2 byte length each if (value.split(':').length == 6 && value.split(':').every(p => p.length == 2) && !value.startsWith('@')) { // add an @ leading for the text below value = '@' + value; } value = value.replace(/:/g, ''); const dummy = document.createElement("input"); // required else call for IMask() on dummy won't work document.body.appendChild(dummy); dummy.setAttribute("value", value.startsWith('@') ? value.substr(1) : value); // length must be 12 and should not start with 00 if (/^@[0-9a-f]{12}$/i.test(value)) { // remove the leading @ that was added before or by the user and add : formation masked._value = IMask(dummy, { mask: '**:**:**:**:**:**' })._value; } else { // filter only numbers masked._value = IMask(dummy, { mask: /.*/, prepare(str) { return str.replace(/[^0-9]/, ''); } })._value; } dummy.remove(); } }); </script>
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda