我的数据框中有一堆字符串,如下所示。
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/