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;
        }
    }
  • 相关阅读:
    JavaScript中this指针指向的彻底理解
    JavaScript闭包应用介绍
    Javascript代码中的骚操作
    h2database.com 高级特性
    H2Database高级特性
    BlockingQueue的使用
    谈谈java的BlockingQueue
    Java基于Socket文件传输示例
    java socket 多线程网络传输多个文件
    用JAVA捕获屏幕、屏幕录像、播放
  • 原文地址:https://www.cnblogs.com/tianlin106/p/9075459.html
Copyright © 2011-2022 走看看