Swift: 从金额文本中获取货币符号

Swift: Getting currency symbol from an amount text

如何从同时包含金额和符号的字符串中提取货币符号。这些字符串可以是任何国际格式,因为我是从 NumberFormatter 获取的。此类字符串的一些示例及其结果如下:-

446.99 美元 =-> $

445,34 美元 45 => 美元

445,34 45 美元 => 美元

567 泰铢 => 泰铢

567 泰铢 => 泰铢

还有很多。

我已经知道 NumberFormatter 属性 currencySymbolinternationalCurrencySymbol,但它们无助于获得通用解决方案,因为在美元的情况下,它们 return你分别是 $ 和 USD。如果那里有 regex 那么我也很乐意尝试。

PS:我需要这些信息来根据下图格式化我的货币符号:-

这是 filter outString 中提及字符的方法之一:

let filteredString = String("567 THB".filter { String([=10=]).rangeOfCharacter(from: CharacterSet(charactersIn: "0123456789.,")) == nil }).trimmingCharacters(in: .whitespacesAndNewlines)
//TBH <- prints

您可以进行以下操作:

let currency = str.trimmingCharacters(in: CharacterSet(charactersIn: "0123456789., "))