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;
        
    }


  • 相关阅读:
    2021年年度总结——命运与轮回思考
    Kafka消费端数据过滤方案
    Vue.js知识点汇集
    The POM for is missing .....no dependency information available
    Knife4j 自定义参数解析
    Java List<String> IndexOf(object e)坑
    ES6获取对象数组属性最大最小值
    VM虚拟机(Windows server 2019)分区
    uniapp本地文件的路径
    JS墨卡托坐标与经纬度互转
  • 原文地址:https://www.cnblogs.com/pruple/p/7450654.html
Copyright © 2011-2022 走看看