Máscara de teléfono Javascript para campo de texto con expresiones regulares
Estoy usando esta función para llamar por teléfono a la máscara y funciona casi perfectamente.
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;
}
Aquí corro la máscara en el campo de texto:
<input type="text" id="phone" name="phone" onkeypress="mask(this, mphone);" onblur="mask(this, mphone);" />
El problema es que necesito cambiar esta parte del código(OXX $ 1) para(0XX $ 1).
Situación actual con 9 dígitos:(OXX99) 99999-9999.
Situación actual con 8 dígitos:(OXX99) 9999-9999.
El formato correcto que necesito con 9 dígitos:(0XX99) 99999-9999
El formato correcto que necesito con 8 dígitos:(0XX99) 99999-9999
La cantidad de 8 o 9 dígitos es la elección del usuario.
Si cambio el carácter 'O' por '0', se produce un error en la máscara.
¡Por favor ayuda!