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!!!

InformationsquelleAutor Danilo | 2013-04-04
Schreibe einen Kommentar