如何删除添加到文本字段的正则表达式?

时间:2018-07-04 14:20:35

标签: ios objective-c regex uitextfield

我有一个特殊的情况,首先我必须在文本字段中添加一个正则表达式,然后过一会儿我必须将其删除。我成功添加了它,但是我不知道如何删除它。如果有人可以告诉我如何在文本字段上更新正则表达式,那也可以工作。我试图覆盖较旧的正则表达式,但它根本无法正常工作。这是我遇到的麻烦的代码,有时if条件为true,有时控件转到else块。

-(void)addRegexInformation{

if ([[USERDEFAULT stringForKey:USERSELECTEDLANGUAGE] isEqualToString:@"Persian"] || [[USERDEFAULT stringForKey:USERSELECTEDLANGUAGE] isEqualToString:@"Spanish"] || [[USERDEFAULT stringForKey:USERSELECTEDLANGUAGE] isEqualToString:@"German"]) {

    [emailTxtFld addRegx:REGEX_EMAIL withMsg:[UtilityHandler convertIntoSelectedLanguage:CustomLocalisedString(@"validEmail")]];

    [passwordTxtFld addRegx:REGEX_USER_NAME_LIMIT withMsg:[UtilityHandler convertIntoSelectedLanguage:CustomLocalisedString(@"enterPassMsg")]];
}
else{
    [emailTxtFld addRegx:REGEX_EMAIL withMsg:CustomLocalisedString(@"validEmail")];

    [passwordTxtFld addRegx:REGEX_USER_NAME_LIMIT withMsg:CustomLocalisedString(@"enterPassMsg")];

}

}

1 个答案:

答案 0 :(得分:1)

addRegx并未内置到iOS SDK中,而是由几个不同的开源文本字段验证器添加的API,例如在https://github.com/dhawaldawar/TextFieldValidatordocumentation found here)处找到的验证器。 / p>

https://github.com/canicelebrate/AETextFieldValidator上也找到了一个较新的版本(截至两年前),可以通过Cocoapods将其合并。

您没有指定要使用的是哪个,所以我们现在假设AETextFieldValidator

GhazalahTextFieldValidator.h

#import <UIKit/UIKit.h>
#import "AETextFieldValidator.h"

@interface GhazalahTextFieldValidator : AETextFieldValidator

@end

GhazalahTextFieldValidator.m

#import "GhazalahTextFieldValidator.h"

@interface GhazalahTextFieldValidator() {
    NSMutableArray *arrRegx;
}
@end

@implementation GhazalahTextFieldValidator

- (void)emptyRegxArray {
    [arrRegx removeAllObjects];
}

@end

将您的文本字段设置为这些验证器,您应该会很好。