有时在用户需要提交一些修改的时候,我们需要校验他提交的内容的长度或者合法性,当然这些校验可以放到后台,,以输入电话号码为例:
//先为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
}
网友评论