zoukankan      html  css  js  c++  java
  • iOS 中文字符判断 正则NSRegularExpression 谓词NSPredicate 和 NSRange

    废话不说,直接上代码

    #pragma mark - 中文字符判断
    
    
    // 正则匹配是否包含中文
    - (BOOL)validateContainsChinese:(NSString *)content
    {
        NSRegularExpression *regularexpression = [[NSRegularExpression alloc]
                                                  initWithPattern:@"^[u4e00-u9fa5]"
                                                  options:NSRegularExpressionCaseInsensitive
                                                  error:nil];
        return ([regularexpression numberOfMatchesInString:content
                                                   options:NSMatchingReportProgress
                                                   range:NSMakeRange(0, content.length)] > 0);
    }

    // 谓词匹配是否为全中文
    - (BOOL)validateAllChinese:(NSString *)content
    {
        NSString *regEx = @"^[u4e00-u9fa5]+$";
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regEx];
        
        return [predicate evaluateWithObject:content];
    }

    // 谓词匹配包含中文
    - (BOOL)validateContainsChineseT:(NSString *)content
    {
        NSString *regEx = @".+[u4e00-u9fa5].+";  // @"^[u4e00-u9fa5].*" - ^为匹配中文开始
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regEx];
        
        return [predicate evaluateWithObject:content];
    }

    // 匹配包含中文:利用rangeOfString:option:直接查找
    - (BOOL)validateRangeContainsChinese:(NSString *)content
    {
        NSString *regEx = @".*[u4e00-u9fa5].*";
        NSRange range = [content rangeOfString:regEx options:NSRegularExpressionSearch];
        
        return range.length;
        
    }

    // 匹配全是中文:利用rangeOfString:option:直接查找
    - (BOOL)validateRangeAllChinese:(NSString *)content
    {
        NSString *regEx = @"^[u4e00-u9fa5]+S";
        NSRange range = [content rangeOfString:regEx options:NSRegularExpressionSearch];
        
        return range.length;
        
    }


  • 相关阅读:
    Windows Live Writer加载代码着色插件步骤
    C#中List<object>.Clear()方法和实例化new List<object>()操作的结果分析
    QT Creator引用win32 api类库方法(.lib)
    Fiddler系列教程1:初识Http协议抓包工具
    Robot Framework自动化测试框架初探
    JMeter基础教程1:若隐若现的参数化
    python异步并发模块concurrent.futures入门详解
    符合语言习惯的Python优雅编程技巧
    Python实现正交实验法自动设计测试用例
    Python Nose框架编写测试用例方法
  • 原文地址:https://www.cnblogs.com/pruple/p/7450654.html
Copyright © 2011-2022 走看看