有没有办法在文本字段中只允许双值? 我想在里面存一笔钱,比如1.50€。
为了保存该值,我删除了这样的欧元符号:
var moneyValue: String = amountField.text
var stringLength = countElements(moneyValue)
var substringIndex = stringLength - 2
var finishedValue: String = moneyValue.substringToIndex(advance(moneyValue.startIndex, substringIndex))
或者是否有另一种解决方案?
提前致谢!
答案 0 :(得分:1)
我已经编写了一个函数,只需检查它是否适合您:
func formatAsPrice(priceString: NSString) -> NSString {
var price: NSNumber = NSNumber(Double: priceString.doubleValue) ;
var formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.stringFromNumber(price)
formatter.locale = NSLocale(localeIdentifier: "YOUR_Locale")
var priceNumber : NSString = formatter.stringFromNumber(price)!
return priceNumber
}
答案 1 :(得分:0)
有两种解决方案。一种是使用NSNumberFormatter
并尝试解码文本值。第二种是使用NSRegularExpression
并匹配"^[+-]?\\d*(\\.\\d{0,2})?$"
。如果您只想要合法的分值,后者会阻止输入1.234等金额。当然,您可以检查来自NSNumberFormatter
的值是否合法,并使用litte算法。