2016-05-23 6 views
0

Was ist der beste Weg, Zahlen (mit Punkt dazwischen manchmal) aus einer Zeichenfolge in einer Zeile zu extrahieren?Was ist der beste Weg, Preise aus einer Zeichenfolge in einer Zeile zu extrahieren?

var str = "ghjkhjgbkhj123.45khgbkhjgk67 8kjhgkj hg13.99sads"; 

Ich brauche eine Reihe von [123.45, 67, 8, 13.99];

str.match(/\d+/g) Renditen leicht unterschiedlichen Ergebnissen - es ist nicht "." zählt.

+0

http://stackoverflow.com/questions/12117024/decimal-number-regular-expression-where-digit-after-decimal-isoptional – rock321987

Antwort

2

Verwenden regex als /\d+(?:\.\d+)?/g

var str = "ghjkhjgbkhj123.45khgbkhjgk67 8kjhgkj hg13.99sads"; 
 

 
console.log(
 
    str.match(/\d+(?:\.\d+)?/g) 
 
);


Regex explanation here.

Regular expression visualization

+0

Wie sieht es mit dem französischen und deutschen Preisformat aus? –

1

str.match(/[.\d]+/g) wird wha tun Sie fragen nach. Es wird mehr als einen Punkt erlauben, also wenn Sie etwas "vernünftig" geben wollen 123.456.789 werden Sie wahrscheinlich etwas komplizierter wollen - aber in diesem Fall sollten Sie zuerst herausfinden, was vernünftiger, was Sie wollen.