Javascript téléphone masque pour le champ de texte avec la regex
J'utilise cette fonction pour téléphone masque et fonctionne presque parfaitement.
function mask(o, f)
{
v_obj = o;
v_fun = f;
setTimeout("execmask()", 1)
};
function execmask()
{
v_obj.value = v_fun(v_obj.value)
};
function mphone(v){
v=v.replace(/\D/g,"");
v=v.substring(0, 11);
v=v.replace(/^(\d{2})(\d)/g,"(OXX$1) $2");
v=v.replace(/(\d)(\d{4})$/,"$1-$2");
return v;
}
Ici, je lance le masque dans le champ de texte:
<input type="text" id="phone" name="phone" onkeypress="mask(this, mphone);" onblur="mask(this, mphone);" />
Le problème est que j'ai besoin de changer cette partie du code (OXX$1) pour (0XX$1).
Situation actuelle avec 9 chiffres: (OXX99) 99999-9999.
Situation actuelle avec 8 chiffres: (OXX99) 9999-9999.
La mise en forme correcte que j'ai besoin avec 9 chiffres: (0XX99) 99999-9999
La mise en forme correcte que j'ai besoin avec 8 chiffres: (0XX99) 99999-9999
Le montant de 8 ou 9 chiffres est le choix de l'utilisateur.
Si je change le caractère 'O' pour '0', provoque une erreur dans le masque.
S'il vous plaît, à l'aide!
- ne pouvait pas voir le problème . jsfiddle.net/ufsuz
Vous devez vous connecter pour publier un commentaire.
http://jsfiddle.net/BBeWN/
-
uniquement lorsquer.length > 6
, de sorte que la suppression de char par char (backspace) gardera cette fonction de travail.J'adore cette fonction et je l'utilise tout le temps. J'ai ajouté 2 autres masques si quelqu'un a besoin d'eux. Je comprends qu'ils ne sont pas directement répondre à la question, mais ils sont super utiles.