限制輸入框只能輸入兩位小數(shù)
限制輸入框只能輸入兩位小數(shù),如果一開始輸入0,然后再次輸入數(shù)字。默認(rèn)在中間給添加上小數(shù)點(diǎn)。
/// 輸入框限制數(shù)字
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let text = textField.text ?? ""
if !Tool.isNumberAndTwoDecimalContent(string: text + string) {
if text.count > 0, string == ".", !text.contains(".") {
return true
}
return false
} else {
if textField.text == "0", Tool.isNumberContent(string: string) {
textField.text = "0."
}
}
return true
}
/**
* 判斷只能輸入數(shù)字和小數(shù)點(diǎn)后兩位
*/
static func isNumberAndTwoDecimalContent(string:String) -> Bool {
let regex = "^[0-9]+(\\.[0-9]{1,2})?$"
let predicate = NSPredicate(format: "SELF MATCHES %@", regex)
let isValid = predicate.evaluate(with: string)
return (isValid ? true : false)
}
/**
* 判斷只能輸入數(shù)字
*/
static func isNumberContent(string:String) -> Bool {
let scan: Scanner = Scanner(string: string)
var val:Int = 0
return scan.scanInt(&val) && scan.isAtEnd
}