ios输入内容正则表达式的应用

来源:互联网 发布:澳门网络博客官方 编辑:程序博客网 时间:2024/05/01 19:36

由于最近开发ios的程序,由于需要正则表达式的验证,比较麻烦。

正则表达式的用法比较多,可以网上搜索一下,但是使用的过程中会根据问题区分。

目前的需求就是,输入的内容不可以是汉字,也不可以有空格,代码如下,判断汉字主要是根据字符所占用的字节数判断。

        BOOL hasChinese = NO;

        int length = [str length];

        for (int i=0; i<length; i++) {

            NSRange range = NSMakeRange(i, 1);

            NSString *subString = [str substringWithRange:range];

            const char *cString = [subString UTF8String];

            if (strlen(cString) == 3)

            {

                hasChinese = YES;

            }

        }

        if (hasChinese) {

            error = [selferror:LoginCheckErrorEmailInvalidatedescription:@"email Invalidate"];

        }else {

            NSString * regex = @"[\\S]{1,}";

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

            BOOL isMatch = [pred evaluateWithObject:str];

            if (!isMatch) {

                error = [selferror:LoginCheckErrorPasswordInvalidatedescription:@"Password Invalidate"];

            }

        }

    }