1,首先我們需要控制輸入字符的驗(yàn)證扫腺,比如(中國(guó)的)手機(jī)號(hào)不能超過(guò)11位人,驗(yàn)證碼為4/6位 密碼多少位等。放航。。
[_nameText addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
[_phoneText addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
[_textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
實(shí)現(xiàn)textFieldDidChange方法,判斷中文下輸入
pragma mark – 輸入框觀察者事件
- (void)textFieldDidChange:(UITextField *)textField {
NSInteger kMaxLength = 10 ;
NSString *toBeString = textField.text;
if (textField == _phoneText) {
kMaxLength = 11;
}else if (textField == _nameText){
kMaxLength = 12;
}else if (textField == _textField){
kMaxLength = 5;
}
NSString *lang = [[UIApplication sharedApplication]textInputMode].primaryLanguage; //ios7之前使用[UITextInputMode currentInputMode].primaryLanguage
if ([lang isEqualToString:@"zh-Hans"]) { //中文輸入
UITextRange *selectedRange = [textField markedTextRange];
//獲取高亮部分
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
if (!position) {// 沒(méi)有高亮選擇的字坛猪,則對(duì)已輸入的文字進(jìn)行字?jǐn)?shù)統(tǒng)計(jì)和限制
if (toBeString.length > kMaxLength) {
textField.text = [toBeString substringToIndex:kMaxLength];
}
}
}else{//中文輸入法以外的直接對(duì)其統(tǒng)計(jì)限制即可命黔,不考慮其他語(yǔ)種情況
if (toBeString.length > kMaxLength) {
textField.text = [toBeString substringToIndex:kMaxLength];
}
}
self.sureBtn.userInteractionEnabled = YES;
}
3,提交的時(shí)候用正則表達(dá)式驗(yàn)證:
if ([self.phoneText.text length] == 0) {
[DZTools showNOHud:LocalizedString(@"請(qǐng)輸入電話(huà)號(hào)碼") delay:1];
return;
}
///13456789{9} 正則表達(dá)式
if (![self.phoneText.text isTelephone]) {
[DZTools showNOHud:LocalizedString(@"請(qǐng)輸入正確的電話(huà)號(hào)碼") delay:1];
return;
}