Ich brauche Javascript, um eine Telefonnummer so zu formatieren, wie sie eingegeben wird. Dies würde alle nicht numerischen Zeichen ersetzen und Bindestriche einfügen, wenn der Benutzer sie nicht eingibt. Bisher bin ich dem am nächsten gekommen, aber es wird abgeworfen, wenn sie einen Bindestrich an der falschen Stelle einfügen. Die ideale Lösung wäre, Bindestriche nur an den falschen Stellen zu ersetzen. Ich habe nach einer Möglichkeit gesucht, die 4. und die 8. Ziffer möglicherweise anders zu ersetzen, habe aber keine Lösung gefunden.
$('#TelephoneNo').keyup(function (ev) {
if (/[^0-9\-]/g.test(this.value))
{
this.value = this.value.replace(/[^0-9\-]/g, '');
}
if (/^(\d{3})(\d)/.test(this.value))
{
this.value = this.value.replace(/^(\d{3})(\d)/, '$1-$2');
}
if (/^(\d{3}-\d{3})(\d)/.test(this.value))
{
this.value = this.value.replace(/^(\d{3}-\d{3})(\d)/, '$1-$2');
}
});
Lösung des Problems
Angenommen, Sie möchten das Format "123-456-7890":
function formatPhoneNumber(s) {
var s2 = (""+s).replace(/\D/g, '');
var m = s2.match(/^(\d{3})(\d{3})(\d{4})$/);
return (!m)? null: m[1] + " -" + m[2] + "-" + m[3];
}
Keine Kommentare:
Kommentar veröffentlichen