GOOGLE ADS

Dienstag, 19. April 2022

Regex zum Ersetzen nicht numerischer Zeichen und zum Einfügen von Bindestrichen für die Telefonnummer während der Eingabe

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

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...