ios-UITextField-输入字符校验

有时在用户需要提交一些修改的时候,我们需要校验他提交的内容的长度或者合法性,当然这些校验可以放到后台,,以输入电话号码为例:

//先为textField设置一个变化的监听,
text.addTarget(self, action: #selector(textDidChange), forControlEvents: .EditingChanged)

//监听时产生校验行为
校验用户输入的长度
func textDidChange(textField:UITextField) {
    if let _ = textField.text {
      // 不使用拼音的时候就校验
      if let positionRange = textField.markedTextRange {
        if let _ = textField.positionFromPosition(positionRange.start, offset: 0) {
          
        } else {
          self.checkTextFieldLen(textField)
        }
      } else {
        self.checkTextFieldLen(textField)
      }
    }
    checkTextFieldVegality(textField)
  }

//是否超出长度
func checkTextFieldLen(textField:UITextField) {
    //your code here
    let texts:String = textField.text!
    let ss = texts as NSString
    var len = 0
    len = telLen
    if texts.characters.count > len {
      print("too long")
      textField.text = ss.substringToIndex(telLen)
    }
  }

  // 是否合法
  func checkTextFieldVegality(textField:UITextField) {
      if isValidTel(textField.text!) == false {
        print("非法字符串")
      }
  }

func isValidTel(str:String) -> Bool {
    let format = "^1[0-9]*$"
    let predicate = NSPredicate(format: "SELF MATCHES %@",format)
    let isValid = predicate.evaluateWithObject(str)
    return isValid
  }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,560评论 25 708
  • 情书,一纸空文,仅此而已? 傍晚独自一人回寝,走在林荫大道的一侧小径,凹凸不平。白色的未名碎花,点缀着绿茸茸的草坪...
    绿岸阅读 280评论 0 3
  • **一个人能取得多大的成功,并不是因为天赋,而是他能把努力做到了无人能比。** 大学毕业后,同班同学的小金和小Y找...
    NiGer林阅读 369评论 0 0
  • 一月的输出。我当作小结点,打算给自己放个假,晚点写感悟。结果事情多的,我居然忘了。(惊讶脸) deadline是一...
    小霁桃源阅读 75评论 0 3
  • 各位亲爱的朋友,今天小地主家的蜜罐子开坛了^_^记录我生活的点点滴滴。不是全部的我,但都是真实的我。
    小地主的蜜罐子阅读 179评论 0 0