func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
// 限制小數(shù)點(diǎn)后倆位
var futureString: String = textField.text ?? ""
if string == "" {
return true
}
if !matchCharacter(c: string) {
return false
}
futureString.insert(Character(string), at: futureString.index(futureString.startIndex, offsetBy: range.location))
// 設(shè)置欠款金額最大值
if futureString.DoubleValue >= 100000000 {
return false
}
var flag: Int = 0
var array: [Character] = [Character]()
for c in futureString {
array.append(c)
}
if string == "." {
// 如果插入小數(shù)點(diǎn),要判斷當(dāng)前光標(biāo)的位置和字符串的長度
if futureString.count - range.location > 3 {
return false
}
}
for c in array.reversed() {
if c == "." {
if isEqual(arr: array) {
return false
}
// limited 是 2 (倆位)
if flag > limited {
if range.location == futureString.count - 1 || range.location == futureString.count - 2 || range.location == futureString.count - 3{
return false
} else {
return true
}
}
}
flag += 1;
}
return true
}
/// 判斷數(shù)組中是否有倆個小數(shù)點(diǎn)
func isEqual(arr: [Character]) -> Bool {
var flag: Int = 0
for c in arr {
if c == "." {
flag += 1
if flag >= 2 {
return true
}
}
}
return false
}
// 正則匹配數(shù)字和小數(shù)點(diǎn)
func matchCharacter(c: String) -> Bool {
let reg = "^[0-9.]+$"
let pre = NSPredicate(format: "SELF MATCHES %@", reg)
if pre.evaluate(with: c) {
return true
}else{
return false
}
}
Swift UITextField 限制輸入:小數(shù)點(diǎn)后倆位,總值小于1億
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 首先我們需要給需要限制的UITextField設(shè)置代理,然后在其代理方法中實(shí)現(xiàn)如下的代碼: 代碼: functex...
- 代碼如下實(shí)現(xiàn)UITextField代理方法
- Git地址https://github.com/tanghk/text.git
- @property(nonatomic,assign)BOOLisHaveDian; @property(nona...
- UITextField的代理方法中添加類似如下代碼 - (BOOL)textField:(UITextField ...