2016-10-21 4 views
0

Wie kann ich nur Buchstaben aus der Zeichenfolge entfernen? Zum Beispiel, ich habe diesen Text 345-d34 XXSo entfernen Sie alle Buchstaben aus der Zeichenfolge

Und ich will 345-34

ich diesen Code versucht zu bekommen:

replace(/\D/g, '') 

Aber jetzt ist es richtig zu arbeiten, weil ich nur Zahlen bekommen ohne -

+0

So werden andere Symbole zu gehalten werden sollte? Oder ist das eigentliche Problem, dass Zahlen und Bindestriche beibehalten werden sollen? –

+3

'ersetzen (/ [a-z]/gi, '')' oder 'ersetzen (/ [^ \ d -]/g, '') – trincot

+0

@trincot - Ihr Kommentar sollte zu einer Antwort befördert werden. – Malvolio

Antwort

1

Wenn Sie wirklich nur (latein) Buchstaben aus dem String entfernen möchten:

replace(/[a-z]/gi, '') 

Wenn Sie halten wollen nur Ziffern und Bindestrichen:

replace(/[^\d-]/g, '') 

NB: Wenn Sie die zweite Lösung verwenden wollen und möchten, dass andere Zeichen hinzufügen, die Sie behalten möchten, stellen Sie sicher, den Bindestrich zu halten zuletzt in die Klasse, sonst ändert sie ihre Bedeutung und wirkt wie eine Reihe.

+0

Hallo, es funktioniert! – Dawid77

+0

Vielen Dank :-) – Dawid77

0

Entfernen aller Briefe von String mit der Verwendung von regular expression:

var str = '345-d34 XX', 
 
    result = str.replace(/[^\d-]/g, ''); 
 

 
console.log(result);

Verwandte Themen