输入框禁止输入特殊字符串,限制输入文字长度
2017-07-07 09:49
302 查看
在开发中经常会遇到一些输入框禁止用户输入特殊字符的情况。最近总结了一下。
方法一:如果只是限制少量特殊字符的话可以用以下方法进行判断是否包含
如果字符串中包含特殊字符可以,将特殊字符移除,将截取后的字符串重新赋值给输入框
方法二:如果限制只允许输入大写,或者小写字母,或者只允许输入字母和数字可以用这种方法
需要实现TextField的代理方法:
还见到一种方法
不过这种方法存在不足之处,如果穷举所有特殊字符串显然容易有所遗漏,另外如果长安输入的字符串,使指针位置在字符串中间,然后再输入字符插入,这个时候没法过滤特殊字符串。
如果要限制允许输入字符串的最大长度,可以这样:
给输入框添加一个监听事件,然后实现方法
关于禁止输入特殊字符串应该还有别的方法,以后发现了再添加更新
方法一:如果只是限制少量特殊字符的话可以用以下方法进行判断是否包含
[textField.text rangeOfString:@"特殊字符"].location == NSNotFound
如果字符串中包含特殊字符可以,将特殊字符移除,将截取后的字符串重新赋值给输入框
string = [string stringByReplacingOccurrencesOfString:@"要截取的特殊字符" withString:@""];
方法二:如果限制只允许输入大写,或者小写字母,或者只允许输入字母和数字可以用这种方法
需要实现TextField的代理方法:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSCharacterSet *cString = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"] invertedSet]; NSString *newString = [[string componentsSeparatedByCharactersInSet:cString] componentsJoinedByString:@""]; return [string isEqualToString:newString]; }
还见到一种方法
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"@/:;()¥「」"、[]{}#%-*+=_\\|~<>$€^·'@#$%^&*()_+'\""]; NSString *newString = [stringstringByTrimmingCharactersInSet:set];
不过这种方法存在不足之处,如果穷举所有特殊字符串显然容易有所遗漏,另外如果长安输入的字符串,使指针位置在字符串中间,然后再输入字符插入,这个时候没法过滤特殊字符串。
如果要限制允许输入字符串的最大长度,可以这样:
[self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
给输入框添加一个监听事件,然后实现方法
- (void)textFieldDidChange:(UITextField *)textField { //如果有很多输入框都添加了事件监听,那么需要先判断是否是想要处理的输入框 if ([textField isEqual:self.textField]) { if (textField.text.length == 20) { [MyToast showWithText:@"最长允许输入20个字符"]; [textField resignFirstResponder]; } } }
关于禁止输入特殊字符串应该还有别的方法,以后发现了再添加更新
相关文章推荐
- 通过输入框中字符串的像素长度限制输入文字长度
- HTML中Input输入框的只能输入数字,限制长度,默认显示文字等
- Android中限制EditText(输入框)文字输入长度
- editText限制输入字符长度,禁止输入表情,清除输入文字的按钮
- 保持字符串小数点后两位和EditText输入框中输入的数字的长度限制
- EditText中禁止输入中文的方法及长度限制
- 限制字符长度及特殊符号不能输入
- js限制textarea每行输入字符串长度的代码
- js限制输入文字长度
- iOS 键盘输入限制(只能输入字母,数字,禁止输入特殊符号)
- 今天碰到一个问题,怎么限制用户在固定宽度的input输入框里输入的长度,由此涉猎到了maxlength属性和size属性以及它们的区别。
- UITextView输入文字长度限制
- EditText限制输入字符串长度
- 输入框禁止输入特殊字符
- number输入框限制输入数字位数、字体随数字长度变化
- iOS开发问题----去掉输入键盘上的自动联想部分,限制长度内容,以及禁止输入emoji表情等问题
- JS限制字符长度及特殊符号不能输入
- jQuery 限制输入字符串长度
- JS 限制输入框的文字长度
- 解决js函数replace禁止输入框输入非法字符,光标回到文字最后问题(兼容ie、谷歌)