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


    一、正则表达式

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

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

    }

  • 相关阅读:
    MyBatis中Like语句使用总结
    使用dom4j解析xml为json对象
    实体类里布尔类型在数据库里可以用整型映射
    Java枚举根据key获取value
    Oracle和Mysql中mybatis模糊匹配查询区别
    解决3 字节的 UTF-8 序列的字节 3 无效
    git上传代码到github
    OpenShift 3.11离线环境的jenkins演示
    OpenShift下的JVM监控
    OpenShift 4.1 演示
  • 原文地址:https://www.cnblogs.com/tony0571/p/5436648.html
Copyright © 2020-2023  润新知