zoukankan      html  css  js  c++  java
  • 正则表达式使用和键盘监听

    一、正则表达式

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

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

    }

  • 相关阅读:
    iOS iOS与html进行交互
    2. SwiftUI学习之_padding1()
    基础知识 1. 设计模式是什么?你知道哪些设计模式,请简要叙述?
    swift 5.0富文本
    ios 本地化
    ios报错:nw_protocol_get_quic_image_block_invoke dlopen libquic failed
    IOS开发没有开发者账号也可以进行测试
    swift项目中新的字体如何加入
    TestFlight用法 包教包会(iOS APP官方测试工具)
    IOS FMDB的使用
  • 原文地址:https://www.cnblogs.com/tony0571/p/5436648.html
Copyright © 2011-2022 走看看