2016-05-23 2 views
0

Каков наилучший способ извлечения чисел (с точкой между ними иногда) из строки в одной строке?Каков наилучший способ извлечь цены из строки в одной строке?

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

мне нужен массив [123.45, 67, 8, 13.99];

str.match(/\d+/g) возвращает немного разные результаты - это не считается ".".

+0

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

ответ

2

Использование регулярных выражений в качестве /\d+(?:\.\d+)?/g

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

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


Regex explanation here.

Regular expression visualization

+0

Что относительно французского и немецкого формата цены? –

1

str.match(/[.\d]+/g) будет делать WHA т вы просите. Это позволит использовать более одной точки, поэтому, если вы хотите сделать что-то «разумное», данное 123.456.789, вам, вероятно, понадобится что-то более сложное, но в этом случае вы должны сначала точно определить , что более разумная вещь, которую вы хотите.

Смежные вопросы