Javascript Handy-Maske für text-Feld mit regex
Ich verwende diese Funktion, um die Handy-Maske und funktioniert fast perfekt.
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;
}
Hier betreibe ich die Maske in das Feld text ein:
<input type="text" id="phone" name="phone" onkeypress="mask(this, mphone);" onblur="mask(this, mphone);" />
Das problem ist, dass ich ändern müssen, diesem Teil des code (OXX$1) für (0XX$1).
Aktuelle situation mit 9 Ziffer: (OXX99) 99999-9999.
Aktuelle situation mit 8 Ziffern: (OXX99) 9999-9999.
Die richtige Formatierung, die ich brauche, mit 9-stellige: (0XX99) 99999-9999
Die richtige Formatierung, die ich brauche, mit 8-digit: (0XX99) 99999-9999
Höhe von 8 oder 9 Ziffer ist die Wahl des Benutzers.
Wenn ich die Zeichen 'O' für '0'), wird ein Fehler in der Maske.
Bitte, Hilfe!!!
- könnte nicht das Problem sehen . jsfiddle.net/ufsuz
Du musst angemeldet sein, um einen Kommentar abzugeben.
http://jsfiddle.net/BBeWN/
-
nur, wennr.length > 6
, so löschen char durch char (backspace) halten diese Funktion arbeitet.Ich Liebe diese Funktion und ich benutze es die ganze Zeit. Ich habe 2 andere Masken, wenn jemand Sie braucht. Ich verstehe, dass Sie nicht direkt die Frage beantworten, aber Sie sind super nützlich.