文本框输入限制
含小数点的情况
func handleFloatText(decimalLength:Int = 2) -> Bool{ if self.text == ""{ return false; } if self.text == "."{ self.text = "0." return false } if self.text?.isIntString() == true{ return true; } if self.text?.matchesReg("^([1-9]\\d*|0)\\.$") == true{ return false; } if self.text?.isFloatString() == true{ if self.text?.matchesReg("^([1-9]\\d*|0)\\.\\d{\(decimalLength+1),}$") == true{ self.text = self.text!.substringToIndex(self.text!.endIndex.advancedBy(-1)) } return true; } self.text = self.text!.substringToIndex(self.text!.endIndex.advancedBy(-1)) return false; }
// 限制输入 整数3位, 小数两位
func textFieldEditingChanged(textField: UITextField) {
if let text = textField.text{
if text.containsString(".") {
textField.handleFloatText(2) // 小数点后最长两位
}else{
if text.length > 3{// 小数点前最大输入3位
textField.text = text.substringToIndex(text.startIndex.advancedBy(3))
}
}
}
}
// 限制输入总长度6位
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if let length = textField.text?.length{
return length + string.length - range.length <= 6
}
return true
}