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;
        }
    }
  • 相关阅读:
    DataGridView设置不自动显示数据库中未绑定的列
    [转载]sed 简明教程
    FreeMarker template error!
    tomcat共享lib里面的jar包
    java命令
    实验报告四
    实验报告三
    实验报告二
    实验一
    网络对抗技术作业
  • 原文地址:https://www.cnblogs.com/tianlin106/p/9075459.html
Copyright © 2011-2022 走看看