首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript从字符串中提取数字

问Javascript从字符串中提取数字
EN

Stack Overflow用户
提问于 2009-06-12 15:41:18
回答 4查看 14.5K关注 0票数 4

我有一堆使用jQuery从html中提取的字符串。

它们看起来像这样:

代码语言:javascript
复制
var productBeforePrice = "DKK 399,95";
var productCurrentPrice = "DKK 299,95";

为了计算差价,我需要提取数值。

(所以我最终选择了≈

代码语言:javascript
复制
var productPriceDiff = DKK 100";

或者只是:

var productPriceDiff = 100";)

有人能帮我吗?

谢谢,雅各布

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-06-12 16:04:41

首先,您需要将输入价格从字符串转换为数字。然后减去。你必须将结果转换回"DKK ###,##“格式。这两个函数应该会有所帮助。

代码语言:javascript
复制
var priceAsFloat = function (price) {  
   return parseFloat(price.replace(/\./g, '').replace(/,/g,'.').replace(/[^\d\.]/g,''));
}

var formatPrice = function (price) {  
   return 'DKK ' + price.toString().replace(/\./g,',');
}

然后你可以这样做:

代码语言:javascript
复制
var productBeforePrice = "DKK 399,95"; 
var productCurrentPrice = "DKK 299,95";
productPriceDiff = formatPrice(priceAsFloat(productBeforePrice) - priceAsFloat(productCurrentPrice));
票数 10
EN

Stack Overflow用户

发布于 2009-06-12 15:47:23

尝试:

代码语言:javascript
复制
var productCurrentPrice = productBeforePrice.replace(/[^\d.,]+/,'');

编辑:这将获得包含数字、逗号和句点的价格。它不会验证数字格式是否正确,也不会验证数字、句点等是否连续。如果你能更精确地定义你所期望的数字,那将会有所帮助。

票数 5
EN

Stack Overflow用户

发布于 2009-06-12 15:51:48

再试一试:

代码语言:javascript
复制
var productCurrentPrice = productBeforePrice.match(/\d+(,\d+)?/)[0];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/987382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档