文本框输入限制

  • 含小数点的情况

    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
    }

results matching ""

    No results matching ""