UITextField中文输入法输入时对字符长度的限制 输入时对字符类型的限制
2016-02-01 11:11
471 查看
检索一个字符串的长度的话:直接用 length,去进行判断就行了,
如果要检索字符串是否是自己要限制的类型的话,可以用正则表达式:
举个例子:
匹配9-15个由字母/数字组成的字符串的正则表达式:
如果要检索字符串是否是自己要限制的类型的话,可以用正则表达式:
举个例子:
匹配9-15个由字母/数字组成的字符串的正则表达式:
NSString * regex = @"^[A-Za-z0-9]{9,15}$"; NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; BOOL isMatch = [pred evaluateWithObject:txtfldPhoneNumber.text]; 如果只限制让输入中文和英文的话,可以这样设置: NSString *regex = @"[a-zA-Z\u4e00-\u9fa5][a-zA-Z\u4e00-\u9fa5]+"; NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; if(![pred evaluateWithObject: _textField.text]) { //此动画为弹出 UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示" message:@"昵称只能由中文、字母组成" delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil]; [alertView show]; return; }else { //代理方法的实现 [self.delegate sendName:_textField.text]; [self.navigationController popViewControllerAnimated:YES]; } 如果要单个限制的话,可以宏定义: #define NUMBERS @"0123456789\n" #define kAlphaNum @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #define kAlpha @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" #define kNumber @"0123456789" #define kHans @"zh-Hans" #define HNMUBERS @"0123456789./*-+~!@#$%^&()_+-=,./;'[]{}:<>?`" 然后在-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 方法里面进行限制的操作: NSCharacterSet *cs; cs = [[NSCharacterSet characterSetWithCharactersInString:HNMUBERS]invertedSet]; NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs]componentsJoinedByString:@""]; //按cs分离出数组,数组按@""分离出字符串 BOOL canChange = [string isEqualToString:filtered]; if(canChange) { [WYTools showTextOnlyHud:@"请输入英文或中文" delay:1.0]; return NO; } return YES; 替换不同的宏定义就可以了!
相关文章推荐
- Anroid API Guides 翻译学习——Introduction to Android(android 引入介绍)
- 生成唯一序列号 Unique ID
- Android设计模式源码解析之Builder模式
- ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法
- ios UIPickerView 技巧集锦(包括循环滚动)
- iOS 在UILabel显示不同的字体和颜色(转)
- js生成guid方法
- CriteriaBuilder float 问题
- 解决easyui-tab添加tab滚动条问题
- easyui时间转为js的时间
- ArrayBlockingQueue解析
- edatagrid扩展,仿kettle形式的表格实现
- UITextFeild修改placeHolder的字号,颜色
- Android UI 优化(1)——使用HierarchyViewer工具
- UVAlive 3263 That Nice Euler Circuit(欧拉定理)
- UILabel
- easyui
- Vue.js 动态数据处理 简单版
- UITableViewCell 适应字符串高度
- poj2299Ultra-QuickSort【树状数组求逆序数、离散化】、【归并排序模板】