2017-02-19 6 views
1

Ich suche eine Möglichkeit, eine Telefonnummer für die Anzeige in Javascript neu zu formatieren. Hier ist ein Beispiel für einige der Daten:Formatieren einer Zeichenfolge in ein bestimmtes Format

00-22 345 991

12450-123948

Ich möchte wie die Zahl der folgenden 3 Länge Format zu formatieren: 555-922-134

Angenommen, dass Bindestriche und Leerzeichen ignoriert werden können und die letzten beiden Blöcke eine Länge von 2 sein können wie: 002-234-59-91 oder 124-501-349-48

Antwort

3

Sie können eine Regex mit Lookahead verwenden.

Die Positive Lookahead sucht nach dem Gleichheitszeichen, aber nicht in der Übereinstimmung.

x (? = Y)

Spielen 'x' nur dann, wenn 'x' durch 'y' gefolgt. Dies nennt man Lookahead.

Zum Beispiel passt /Jack(?=Sprat)/ "Jack" nur, wenn es von "Sprat" gefolgt wird. /Jack(?=Sprat|Frost)/ passt "Jack" nur, wenn "Sprat" oder "Frost" folgt. Weder "Sprat" noch "Frost" gehören jedoch zu den Ergebnissen des Spiels.

function format(s) { 
 
    return s.toString().replace(/\D/g, '').replace(/\d{2,3}(?=..)/g, '$&-'); 
 
} 
 

 
console.log(format('00-22 345 991')); 
 
console.log(format('555922134')); 
 
console.log(format('12450-123948')); 
 
console.log(format(123456789)); 
 
console.log(format(12345678901)); 
 
console.log(format(1234567));

0

Guten Abend! :)

Dies wurde in einem früheren Thread beantwortet. :)

Insert hyphens in javascript

Hope this aushilft - haben eine gute Nacht :)

Verwandte Themen