zoukankan      html  css  js  c++  java
  • 获取一行文本中 一个连续数字的起始位置和长度

    应用场景:一般应用于连续签到的提示,部分文本中需要特殊显示的数字样式

    - (NSRange)rangeOfFirstMatchString:(NSString *)str{
        NSError *error = NULL;
        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[0-9]" options:NSRegularExpressionCaseInsensitive | NSRegularExpressionDotMatchesLineSeparators | NSRegularExpressionAnchorsMatchLines | NSRegularExpressionAllowCommentsAndWhitespace error:&error];
        NSRange firstMatchRange = [regex rangeOfFirstMatchInString:str options:0 range:NSMakeRange(0, [str length])];
        NSInteger matches = [regex numberOfMatchesInString:str options:0 range:NSMakeRange(0, [str length])];
        if (matches>1) {
            firstMatchRange.length = firstMatchRange.length + matches - 1;
        }
        return firstMatchRange;
    }

    接下来就可以利用返回的range值设置attributeString的富文本的属性,例如:

    - (void)setAttributeStringForBlackLbl:(NSString *)str{
        if ([NSString contentIsNullORNil:str] ==  NO) {
            NSMutableAttributedString * attributeString = [[NSMutableAttributedString alloc] initWithString:str];
            [attributeString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16] range:NSMakeRange(0, str.length)];
            [attributeString addAttribute:NSForegroundColorAttributeName value:[UIColor colorFromHexRGB:@"FF533D"] range:NSMakeRange(0, str.length)];
            //设置强调文字
            NSRange specialRange = [self rangeOfFirstMatchString:str];
            [attributeString addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:18.0] range:specialRange];
            [attributeString addAttribute:NSForegroundColorAttributeName value:[UIColor colorFromHexRGB:@"E24C39"] range:specialRange];
            self.blackLbl.attributedText = attributeString;
        }
    }
  • 相关阅读:
    python的模块future用法实例解析
    strcmp函数和memcmp函数的用法区别及联系
    esp8266 smartconfig-智能配网分析和使用及注意事项
    ubuntu 18.04 安装并配置adb
    Markdown的常用方法总结
    mac下使用minicom几个注意事项
    最强Linux shell工具Oh My Zsh 指南
    ESP8266源码分析--打印的基本用法
    atom 在Ubuntu 18.04 上安装及基本使用
    ubuntu 查看端口被占用并删除端口
  • 原文地址:https://www.cnblogs.com/tianlin106/p/9075459.html
Copyright © 2011-2022 走看看