ios-UITextField-输入字符校验
【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
}
推荐阅读
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- Node.js中readline模块实现终端输入
- 字符串拼接成段落,换行符(\n)如何只执行n-1次
- 爬虫数据处理HTML转义字符
- C语言的版本比较
- 大语文4
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- JS截取字符串的方法详解
- Python|Python 字符串 子串 回文串