Swift: 从金额文本中获取货币符号
Swift: Getting currency symbol from an amount text
如何从同时包含金额和符号的字符串中提取货币符号。这些字符串可以是任何国际格式,因为我是从 NumberFormatter
获取的。此类字符串的一些示例及其结果如下:-
446.99 美元 =-> $
445,34 美元 45 => 美元
445,34 45 美元 => 美元
567 泰铢 => 泰铢
567 泰铢 => 泰铢
还有很多。
我已经知道 NumberFormatter
属性 currencySymbol
、internationalCurrencySymbol
,但它们无助于获得通用解决方案,因为在美元的情况下,它们 return你分别是 $ 和 USD。如果那里有 regex
那么我也很乐意尝试。
PS:我需要这些信息来根据下图格式化我的货币符号:-
这是 filter out
从 String
中提及字符的方法之一:
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., "))
如何从同时包含金额和符号的字符串中提取货币符号。这些字符串可以是任何国际格式,因为我是从 NumberFormatter
获取的。此类字符串的一些示例及其结果如下:-
446.99 美元 =-> $
445,34 美元 45 => 美元
445,34 45 美元 => 美元
567 泰铢 => 泰铢
567 泰铢 => 泰铢
还有很多。
我已经知道 NumberFormatter
属性 currencySymbol
、internationalCurrencySymbol
,但它们无助于获得通用解决方案,因为在美元的情况下,它们 return你分别是 $ 和 USD。如果那里有 regex
那么我也很乐意尝试。
PS:我需要这些信息来根据下图格式化我的货币符号:-
这是 filter out
从 String
中提及字符的方法之一:
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., "))