我需要从字符串中获取货币。我的价格可以有多种格式。让我们以加元兑美元为例。CAD将以这种方式格式化:
5.00 加元
虽然美元将以这种方式格式化
5.00 美元
该系统还支持欧元和英镑。显然,价格可能会在成千上万。
这是我不成功的尝试:
result = /^([^\$]+)\$/i.exec(price.text());
我需要从字符串中获取货币。我的价格可以有多种格式。让我们以加元兑美元为例。CAD将以这种方式格式化:
5.00 加元
虽然美元将以这种方式格式化
5.00 美元
该系统还支持欧元和英镑。显然,价格可能会在成千上万。
这是我不成功的尝试:
result = /^([^\$]+)\$/i.exec(price.text());
哇-我不确定我是否理解-您只想提取数字(千位,整数和小数部分),而不是货币类型???汇率呢??是否有其他列指示货币类型?只是看起来很奇怪......
但是,如果该列仅包含带有 amnount 和货币指示符的字符串,那么[\d.,]+
应该获取数字(以及任何尾随或前导逗号或句点) - 这对您有用吗?
Money通常表示为 [ int
, currency
] 元组。我的目标是这样的格式。
你的绳子里似乎有一点绒毛。对于$
一个。
那么怎么样:
var db_string = "5.00$ CAD"; // or "$5.00 USD" or "€5.00 EUR"
var clean = db_string.replace(/[0-9A-Z ]/g, ""); // removes $ . and euro etc.
var parts = clean.split(" ");
var num = parseInt(parts[0], 10); // amount as int, in cents
var cur = parts[1]; // currency: USD, CAD, EUR etc.