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;

    }

  • 相关阅读:
    DeviceIOControl读写硬盘设备
    #ifdef的用法
    更改Visual Studio 2010的主题设置[.vssettings格式]
    vc2010 vs2010 智能插件Visual Assist 安装,设置
    VS2010 C++ 操作Excel表格的编程实现
    Python 字符串
    配置opencv2.4.11生成release版本
    配置opencv2.411调试版本(debug)
    边沿检测与提取,轮廓跟踪
    CComboBox控件的使用 1
  • 原文地址:https://www.cnblogs.com/tony0571/p/5436648.html
Copyright © 2011-2022 走看看