正则表达式使用和键盘监听

一、正则表达式

使用环境很多,但经常会在用户名和密码 判断

了解更多可以查看网址内容,比如下面这个一般都能应付了:http://www.admin10000.com/document/5944.html 

例子:

NSString *regex = @"^[a-z0-9A-Zu4e00-u9fa5]+";

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];

    NSString *str = @"舞舞舞*";

    if ([predicate evaluateWithObject:str]) {

        NSLog(@"match1");

    }else{

        NSLog(@"===");

    }

   

二、 一般的使用场景

监听UITextField、UITextView 等等

- (void)viewDidLoad {

    [super viewDidLoad];

// 监听textfiled 和 keyboard

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textfiledChangeValue:) name:UITextFieldTextDidChangeNotification object:self.textfiled];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeKeyboardHeight:) name:UIKeyboardWillShowNotification object:nil];

}

// textfiled

 - (void)textfiledChangeValue:(NSNotification *)notification {

    UITextField *filed = notification.object;

    NSString *str = filed.text;

    NSString *language = [filed.textInputMode primaryLanguage];

    if ([language isEqualToString:@"zh-Hans"]) {   //  第一语言 zh-Hans 中文

        NSString *regex = @"^[a-zA-Z0-9u4e00-u9fa5]+";

        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];

        BOOL isMatch = [predicate evaluateWithObject:str];

     

        if (isMatch) {

            NSLog(@"it is beyond of limit number");

        }else {

            NSLog(@"it can't containt unexpected symbol");

        }

    }

}

 

- (void)changeKeyboardHeight:(NSNotification *)notificaton {

 

    CGFloat keyboardHeight = [notificaton.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height;

    self.marginTop.constant =  - 100;

}

原文地址:https://www.cnblogs.com/tony0571/p/5436648.html