在textfield中,我想限制數字(如(1234567890))和特殊字符,但我希望允許使用字母數字字符。我怎麼想這樣做?如何限制objective-c中的數字和特殊字符
0
A
回答
0
使用的UITextField委託方法
textField:shouldChangeCharactersInRange:replacementString:
要檢查即將被替換,如果你允許它然後返回是如果沒有則沒有返回的字符串。
這是一些更多的信息。
0
試試下面的代碼
+ (BOOL)isNumber:(NSString *)value {
if ((value == nil) || ([@"" isEqualToString:value])) {
return NO;
}
int l = [value length];
BOOL b = NO;
for (int i = 0; i < l; i++) {
NSString *str =
[[value substringFromIndex:i]
substringToIndex:1];
const char *c =
[str cStringUsingEncoding:
NSASCIIStringEncoding];
if (c == NULL) {
b = NO;
break;
}
if ((c[0] >= 0x30) && (c[0] <= 0x39)) {
b = YES;
} else {
b = NO;
break;
}
}
if (b) {
return YES;
} else {
return NO;
}
}
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ((string != nil) && (string != @"")) {
if (![self isNumber:string]) {
return NO;
}
}
return YES;
}
0
你需要寫一個NSFormatter
並將其分配給您的文本字段。這裏是一個NSFormatter
的示例實現,它使用NSRegularExpression
來驗證NSTextField
內容。
@interface XXNameElementFormatter : NSFormatter
@end
@implementation HcNameElementFormatter {
NSRegularExpression *_re;
}
- (id)init {
self = [super init];
if (self) {
[self initRegularExpression];
}
return self;
}
- (void)awakeFromNib
{
[self initRegularExpression];
}
- (void)initRegularExpression
{
NSError *reError;
_re = [NSRegularExpression regularExpressionWithPattern:@"^[a-z]*$" options:NSRegularExpressionCaseInsensitive error:&reError];
NSAssert(_re != nil, @"Error in regular expression, error: %@", reError);
}
- (NSString *)stringForObjectValue:(id)obj
{
return obj;
}
- (BOOL)getObjectValue:(out __autoreleasing id *)obj forString:(NSString *)string errorDescription:(out NSString *__autoreleasing *)error
{
*obj = string;
return YES;
}
- (BOOL)isPartialStringValid:(NSString *__autoreleasing *)partialStringPtr proposedSelectedRange:(NSRangePointer)proposedSelRangePtr originalString:(NSString *)origString originalSelectedRange:(NSRange)origSelRange errorDescription:(NSString *__autoreleasing *)error
{
NSParameterAssert(partialStringPtr != nil);
NSString *partialString = *partialStringPtr;
NSRange firstMatch = [_re rangeOfFirstMatchInString:*partialStringPtr options:0 range:NSMakeRange(0, partialString.length)];
return firstMatch.location != NSNotFound;
}
@end
相關問題
- 1. 如何限制searchView中的特殊字符和數字?
- 2. jQuery限制特殊字符和限制字段數
- 3. 限制特殊字符
- 4. 在java編程中限制特殊字符和數字
- 5. 限制用戶輸入特殊字符和數字
- 6. 如何檢測字符串中的特殊字符和數字?
- 7. 如何限制字符串不允許使用數字或特殊字符?
- 8. 如何禁用UITextField中的字母,數字和特殊字符?
- 9. 使用jQuery限制特殊字符
- 10. 如何使用xamarin限制iOS中的特殊字符?
- 11. 如何限制asp.net文本框中特殊字符的組合?
- 12. 如何檢查字符串中的字符,數字和特殊字符?
- 13. 限制HTML和AngularJs中的特殊字符
- 14. 如何禁用文本框中的特殊字符和數字?
- 15. jQuery:如何限制重複/繼續的特殊字符
- 16. AngularJS中的整數和特殊字符
- 17. 如何使用jquery阻止或限制輸入字段中的特殊字符?
- 18. 限制2位正數沒有任何特殊字符
- 19. 數字和特殊字符不替換
- 20. 驗證數字和特殊字符'_'
- 21. 如何僅反轉字符串不在行中的數字和特殊字符
- 22. 字符串枚舉類有限制的價值觀和特殊字符
- 23. 特殊字符和MediaPlayer的
- 24. 的fwrite()和特殊字符
- 25. jQuery驗證 - 如何限制用戶在文本字段中輸入數字和特殊字符?
- 26. Java - 如何刪除字符串數組中的特殊字符?
- 27. PHP複製()問題和特殊字符
- 28. 如何重新映射VIM中的數字鍵和數字鍵特殊字符
- 29. 如何顯示特殊字符和curvearrowleft;
- 30. 如何分割特殊字符'##'和'}'
@Merlevede請先閱讀,我不是隻要求數字。我想限制數字,特殊字符並希望允許APLHA NUMERICS。 –
在我建議的鏈接中有一個可以根據需要進行調整的答案。不要期望例子正是你想要的。 – Merlevede