Maska telefoniczna Javascript dla pola tekstowego z wyrażeniem regularnym
Używam tej funkcji do maski telefonu i działa prawie idealnie.
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;
}
Tutaj uruchamiam maskę w polu tekstowym:
<input type="text" id="phone" name="phone" onkeypress="mask(this, mphone);" onblur="mask(this, mphone);" />
Problem polega na tym, że muszę zmienić tę część kodu(OXX 1 USD) dla(0XX $ 1).
Aktualna sytuacja z 9 cyframi:(OXX99) 99999-9999.
Aktualna sytuacja z 8 cyframi:(OXX99) 9999-9999.
Prawidłowe formatowanie, którego potrzebuję z 9 cyframi:(0XX99) 99999-9999
Prawidłowe formatowanie, którego potrzebuję z 8 cyframi:(0XX99) 99999-9999
Ilość 8 lub 9 cyfr jest wyborem użytkownika.
Jeśli zmienię znak „O” na „0”, spowoduje to błąd w masce.
Proszę pomóż!