Swift中如何修改指定子字符串格式 实现冒号后数字加粗显示
你可以通过拆分字符串拼接HTML加粗标签的方式实现,适配你当前已经在用的htmlAttributedString工具方法,完整实现代码如下:
// 接口返回的原始文本 let originalResponseText = "your bill is: 10.00" var finalHtmlStr = "" if let colonPosition = originalResponseText.firstIndex(of: ":") { // 拆分出冒号前的普通文本 let normalContent = String(originalResponseText[..<colonPosition]) // 拆分出冒号后需要加粗的金额部分,自动去掉前后空格 let boldContent = String(originalResponseText[originalResponseText.index(after: colonPosition)...]).trimmingCharacters(in: .whitespaces) // 拼接带<b>加粗标签的HTML文本 finalHtmlStr = "\(normalContent): <b>\(boldContent)</b>" } else { // 未匹配到冒号时直接用原始文本兜底,避免崩溃 finalHtmlStr = originalResponseText } // 调用原有方法转富文本赋值 self.disclaimerLabel.attributedText = finalHtmlStr.htmlAttributedString( withBaseFont: Font.overlineRegular07.uiFont, boldFont: Font.overlineBold02.uiFont, baseColor: Color.blueyGreyTwo.uiColor, boldColor: Color.blueyGreyTwo.uiColor )
如果需要严格只加粗冒号后的数字部分,排除其他文字,你可以用正则提取冒号后的数字段再包裹<b>标签,匹配数字的正则可以用#":\s*(\d+\.?\d*)"#。
内容的提问来源于stack exchange,提问作者biggreentree
相关产品推荐
相关产品推荐

