最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

jquery - extract a float from a string in javascript - Stack Overflow

programmeradmin2浏览0评论

I know that we can extract an integer value from a string using

var x = "> 1";
x = parseInt(x.match(/\d+/)[0], 10));

How do I get a float value from a string

example: var x = "> 1.1"

I know we can just use x.substring(2);

But for a more generic solution? since the above will not give the accurate result for

var x = "1.1"

So what is the best way to extract the float value 1.1 from

var x = "> 1.1"

I know that we can extract an integer value from a string using

var x = "> 1";
x = parseInt(x.match(/\d+/)[0], 10));

How do I get a float value from a string

example: var x = "> 1.1"

I know we can just use x.substring(2);

But for a more generic solution? since the above will not give the accurate result for

var x = "1.1"

So what is the best way to extract the float value 1.1 from

var x = "> 1.1"
Share Improve this question edited Feb 7, 2014 at 18:27 user544079 asked Feb 7, 2014 at 18:15 user544079user544079 16.6k42 gold badges120 silver badges172 bronze badges 1
  • 1 How about /\d+\.?\d*/ – Matt Burland Commented Feb 7, 2014 at 18:18
Add a ment  | 

4 Answers 4

Reset to default 5

Use parseFloat and a regular expression that matches a number with optional decimals and minus sign.

var f = parseFloat(x.match(/-?(?:\d+(?:\.\d*)?|\.\d+)/)[0]);

You can try the following one to extract only numbers like floating or integer as an array as many as you want using the match function.

str = 'On schedule: 3243.8 miles away (4491 minutes)';
values = str.match(/[0-9.]+/g); //=> ["3243.8", "4491"]
x = parseFloat(x.match(/[-+]?([0-9]*\.[0-9]+|[0-9]+)/));

Use parseFloat(). It does exactly what you're looking for.

发布评论

评论列表(0)

  1. 暂无评论