Questa risposta presuppone che si desideri il seguente formato: (000) 000-0000
(come indica l'OP).
Ci sono diversi modi diversi per implementare questo, ma qui ci sono un paio di approcci diversi:
Se si vuole mascherare semplicemente il numero sull'evento blur
(quando il campo perde focus
), allora si potrebbe utilizzare il seguente:
document.getElementById('phone').addEventListener('blur', function (e) {
var x = e.target.value.replace(/\D/g, '').match(/(\d{3})(\d{3})(\d{4})/);
e.target.value = '(' + x[1] + ') ' + x[2] + '-' + x[3];
});
<p>Masked on the blur event (remove focus).</p>
<input type="text" id="phone" placeholder="(555) 555-5555"/>
In alternativa, se si preferisce mascherare il numero mentre digitazione, è possibile ascoltare l'evento input
e quindi condizionato mascherare il numero in base alla partita regex:
document.getElementById('phone').addEventListener('input', function (e) {
var x = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,4})/);
e.target.value = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');
});
<input type="text" id="phone" placeholder="(555) 555-5555"/>
fonte
2015-03-29 22:00:27
possibile duplicato di [Come posso mascherare un input HTML usando javacript?] (Http://stackoverflow.com/questions/7665792/how-can-i-mask-an-html-input-using-javacript) – mplungjan
Ci sono tutte queste risposte che le persone ti hanno dato su [la tua altra domanda] (http://stackoverflow.com/questions/17650197/mask-javascript-variable-value). – elclanrs