使用正则表达式粗体格式化闪亮数据表中的某些字符串

问题描述 投票:0回答:1

我在 Shiny 应用程序中有一个数据表。该数据表有一列包含多个字符串。我需要使用正则表达式将此列中的一个字符串模式格式化为粗体。以下表示需要将字符串“H2”加粗,但我需要正则表达式解决方案

library(shiny)
library(DT)

data <- data.frame(V1 = 1:3, V2 = c("H1, H2, H3", "H5, H2, H6", "H4, H3, H5"))

ui <- fluidPage(
  "How can I make only 'H2' bold??",
  DTOutput("table", width = 500)
)

server <- function(input, output, session) {
  
  output$table <- renderDT(datatable(data))
  
}

shinyApp(ui, server)
javascript r shiny dt
1个回答
3
投票

一种选择是使用例如

gsub
将您想要加粗的文本包装在 HTML
b
标签内,并在
escape=FALSE
中设置
datatable()

编辑:根据@DavidJorquera的建议,我通过添加搜索模式和标签作为变量来对代码进行了一些概括。

library(shiny)
library(DT)

data <- data.frame(V1 = 1:3, V2 = c("H1, H2, H3", "H5, H2, H6", "H4, H3, H5"))

ui <- fluidPage(
  "How can I make only 'H2' bold??",
  DTOutput("table", width = 500)
)

server <- function(input, output, session) {
  
  output$table <- renderDT({
    pattern <- "H2"
    data$V2 <- gsub(pattern, paste0("<b>", pattern, "</b>"), data$V2)
    datatable(data, escape = FALSE)
  })
}

shinyApp(ui, server)
#> 
#> Listening on http://127.0.0.1:5145

© www.soinside.com 2019 - 2024. All rights reserved.