javascript - 如何使用javascript突出显示包含两个已知字符之间的随机字符的子字符串?

标签 javascript r datatables shiny highlighting

我的数据框中有一堆字符串,如下所示。

             v1                    v2
ARSTNFGATTATNMGATGHTGNKGTEEFR   SEQUENCE1
BRCTNIGATGATNLGATGHTGNQGTEEFR   SEQUENCE2
ARSTNFGATTATNMGATGHTGNKGTEEFR   SEQUENCE3

我想搜索并突出显示 v1 列中每个字符串中的一些选定子字符串。例如,假设要搜索的子字符串中的第一个字母为“N”,最后一个字母为“G”,中间的字母可以是“NAG”或“N<强>BG”或“NCG”或“NDG”等等。为了突出显示如下所示的三个字符的子字符串,我编写了 26 行代码以在 R Shiny 选项卡中显示,假设“N”和“”之间可能存在 26 个字母中的任何一个G”。我只是想优化代码。我是JS新手。希望我说清楚了。如果在投反对票之前没有,请告诉我您是否需要更多解释或详细信息。

ARSTNFGATTATNMGATGHTGNKGTEEFR

BRCTNIGATGATNLGATGHTGNQGTEEFR

ARSTNFGATTATNMGATGHTGNKGTEEFR

此处提供了我使用的 26 行代码中具有代表性的 2 行(第一行和最后一行)的节略代码。

datatable(DF, options = list(rowCallback=JS("function(row,data) {
  data[0] = data[0].replace(/NAG/g,'<span style=\"color:blue; font-weight:bold\">NAG</span>');
  .....
  data[0] = data[0].replace(/NZG/g, '<span style=\"color:blue; font-weight:bold\"\">NZG</span>');
  $('td:eq(0)', row).html(data[0]);}"), dom = 't'))

最佳答案

我认为你想要的正则表达式是:/N[A-Z]G/g

如果您还希望它适用于小写:/N[A-Za-z]G/g

关于javascript - 如何使用javascript突出显示包含两个已知字符之间的随机字符的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40697627/

相关文章:

r - 如何在 r 中的多行上迭代使用 mutate

r - 如何将 data.frames 分别保存在列表中?

python - 如何将 Pandas 数据框显示为数据表?

Jquery 数据表插件 - sAjaxSource

c# - JQuery 数据表服务器端列集合

javascript - 通过 Ajax 内联调用 PHP 文件中的操作

javascript - 在 JavaScript 中按值从数组中删除项目会产生不可预测的结果

javascript - 如何找到3个或更多连续字符?

javascript - ChartJS 显示时间数据的差距

r - quanteda 字典中的逻辑组合