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


    一、正则表达式

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

    了解更多可以查看网址内容,比如下面这个一般都能应付了: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;

    }

  • 相关阅读:
    tensorflow源码资源,github
    数据挖掘实战
    Ansible--快速入门
    gRPC C#学习
    Linq之Expression高级篇(常用表达式类型)
    十大经典排序算法(动图演示)
    ASP.NET Web API 管道模型
    docker面试题和解答(一)
    浅谈委托和事件(一)
    面试题三
  • 原文地址:https://www.cnblogs.com/tony0571/p/5436648.html
Copyright © 2020-2023  润新知