2017-05-30 3 views
1

Hey Leute, ich versuche, zwei Zeichen und Leerzeichen aus einer Zeichenfolge, die so aussieht, zu entfernen.Entfernen von mehreren Zeichen aus Zeichenfolge und Leerzeichen

var num1 = "34 345 324.34 $" 
var num2 = "$34,345,324.34" 

Ich möchte im Grunde $ und , und weißen Raum

so weit ich habe diese

num1.replace(/,|\s/g,""); //34345324.34$ 
num2.replace(/,|\s/g,""); //$34345324.34 

entfernen Wie auch lösche ich die $

Danke.

+0

'ersetzen (/ [$ \ s]/g, "")' ' – Thomas

+0

.replace (/ [$, \ s] +/g, ""); ' – anubhava

+0

Wäre es nicht robuster, Zahlen und Dezimalstellen nur * zu behalten *? Z.B. 'num2.replace (/ [^ \ d.]/g, '')' –

Antwort

1

Sie scheinen sich mit Währung Strings befassen. Sie können Ihrem Blacklist-Ansatz folgen und .replace(/[,\s$]+/g,"") verwenden, um alle Vorkommen von 1+ Kommas, Leerzeichen und Dollarsymbolen zu entfernen. Sobald Sie jedoch ein Währungssymbol für Pfund, Euro, Yen usw. haben, müssen Sie die Regex aktualisieren.

eine Whitelist-Ansatz ist einfacher, entfernen Sie alle Zeichen, die nicht auf ihr Adressbuch, Ziffern und Punkte sind:

.replace(/[^0-9.]+/g,"") 

die regex demo See.

Die [^0-9.]+ stimmt mit einem oder mehreren Vorkommen von Zeichen überein (die [^...] ist eine negierte Zeichenklasse, die den umgekehrten Zeichenbereichen/-sätzen entspricht) Ziffern und ein Punkt.

JS Demo:

var nums = ["34 345 324.34 $", "$34,345,324.34"]; 
 
var rx = /[^0-9.]+/g; 
 
for (var s of nums) { 
 
    console.log(s, "=>", s.replace(rx, "")); 
 
}

1

Wenn Leerraum am Anfang der Zeichenfolge (oder am Ende) str.trim(); verwendet wird, entfernt es alle nachfolgenden Leerzeichen vom Anfang und/oder Ende der Zeichenfolge, die sie enthält.

0

Um alle Punkte, Räume und Dollar, fügen Sie das Dollarzeichen (entkommen) in Ihre Regex zu entfernen:

/,|\s|\$/g 

oder einfach

/[,\s\$]/g 

Demo:

var num1 = "34 345 324.34 $" 
 
var num2 = "$34,345,324.34" 
 

 
var res1 = num1.replace(/[,\s\$]/g,""); //34345324.34 
 
var res2 = num2.replace(/[,\s\$]/g,""); //34345324.34 
 

 
console.log(res1) 
 
console.log(res2)

Verwandte Themen