价格字符串分为金额和货币

Far*_*gho -1 javascript typescript

我需要在 javascript 中分割字符串的帮助。

\n\n

我有一个带有货币的字符串。该字符串取决于位置。

\n\n

例如: “1,99\xe2\x82\xac”或“$1,99”

\n\n

我想拆分字符串并从中提取“金额”和“货币”。

\n\n

如果失败,我想返回一个空字符串或只是 null。

\n\n

有人知道如何解决这个问题吗?

\n

mle*_*eko 5

您可以尝试使用正则表达式进行匹配和替换

\n\n

\r\n
\r\n
var extractMoney = function(string) {\r\n  var amount = string.match(/[0-9]+([,.][0-9]+)?/)\r\n  var unit = string.replace(/[0-9]+([,.][0-9]+)?/, "")\r\n  if (amount && unit) {\r\n    return {\r\n      amount: +amount[0].replace(",", "."),\r\n      currency: unit\r\n    }\r\n  }\r\n  return null;\r\n}\r\n\r\nconsole.log(extractMoney("1,99\xe2\x82\xac"));\r\nconsole.log(extractMoney("$1,99")); \r\nconsole.log(extractMoney("error"));
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n\n

结果

\n\n
extractMoney("1,99\xe2\x82\xac"); // => {amount: 1.99, currency: "\xe2\x82\xac"}\nextractMoney("$1,99"); // => {amount: 1.99, currency: "$"}\nextractMoney("error"); // => null\n
Run Code Online (Sandbox Code Playgroud)\n