iOS 正則查找字符串中的數(shù)字

需求:對字符串中的金額的顏色修改

傳統(tǒng)方法:遍歷查找

NSString *str = @"投資券5.89元";
if ([str containsString:@"元"])
    {
        NSString *formStr = @"1234567890.";
        NSArray *arr = [str componentsSeparatedByString:@"元"];
        NSString *targetStr = arr.firstObject;
        NSInteger targetLoc;
        if ([formStr containsString:[targetStr substringWithRange:NSMakeRange(targetStr.length-1, 1)]])
        {
            for (NSInteger i=targetStr.length-1; i>=0; i--)
            {
                if (![formStr containsString:[targetStr substringWithRange:NSMakeRange(i, 1)]])
                {
                    targetLoc = i+1;
                    break;
                }
            }
            NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:model.desc];
            [attributedStr addAttribute:NSForegroundColorAttributeName value:UI_THEME_COLOR range:NSMakeRange(targetLoc, targetStr.length-targetLoc)];
            self.descLabel.text = nil;
            self.descLabel.attributedText = attributedStr;
        }
        else
        {
            self.descLabel.text = str;
        }
    }
    else
    {
        self.descLabel.text = model.desc;
    }

正則查找

 NSString *str = @"投資券5.89元";
    NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc]initWithString:str];
    NSRange range = [str rangeOfString:@"\\d[\\d.,]*(?=元)" options:NSRegularExpressionSearch];
    if (range.location != NSNotFound) {
        NSString *subStr = [str substringWithRange:range];
        NSLog(@"%@", subStr);
        
        [attStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:range];
    }
    self.moneyLabel.attributedText = attStr;
效果圖
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,270評論 0 4
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 人真不能因為一點事情洋洋得意,不然很快就要打臉了。上次才說了周五開始三休,沒想到這周日就被臨時通知加班。做人,還是...
    一顆熄滅的星星閱讀 235評論 0 0
  • 一、關注自己 我們在重視、體會別人的感受的同時,更應當積極地關注自身,而不是將注意力放在我們的行為上。我們常常使用...
    銳博Reborn閱讀 242評論 0 0