如何使用javascript突出显示一个包含两个已知字符之间的随机字符的子字符串? [英] How to highlight a substring containing a random character between two known characters using javascript?

查看:212
本文介绍了如何使用javascript突出显示一个包含两个已知字符之间的随机字符的子字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在下面给出了一堆数据框中的字符串。

I have a bunch of strings in a data frame as given below.

             v1                    v2
ARSTNFGATTATNMGATGHTGNKGTEEFR   SEQUENCE1
BRCTNIGATGATNLGATGHTGNQGTEEFR   SEQUENCE2
ARSTNFGATTATNMGATGHTGNKGTEEFR   SEQUENCE3

我要搜索,突出显示 v1列中每个字符串中的一些选定的子字符串。例如,假设子字符串中的第一个字母被搜索为N,最后一个字母为G,中间的字母可以是N A G或N G>或N C G或N D G等。要突出显示三个字符的子字符串,如下所示,我正在编写26行代码以显示在R Shiny选项卡中,假设 N 之间的26个字母中有任何一个G 。我只是试图优化代码。我是JS的新手。希望我很清楚如果不是在投票之前,请让我知道,如果你需要更多的解释或细节。

I want to search and highlight some selected substrings within each string in v1 column. For example, assuming first letter in the substring being searched as "N" and the last letter as "G", and the middle one could be any letter as in "NAG" or "NBG" or "NCG" or "NDG" and so on. To highlight the substring of three characters as shown below, I am writing 26 lines of code to display in R Shiny tab assuming there could be any of the 26 letters in between "N" and "G". I am just trying to optimize the code. I am new to JS. Hope I was clear. If not before down voting please let me know should you need more explanation or details.

ARST NFG ATTAT NMG ATGHTG NKG TEEFR

ARSTNFGATTATNMGATGHTGNKGTEEFR

BRCT NIG ATGAT NLG ATGHTG NQG TEEFR

BRCTNIGATGATNLGATGHTGNQGTEEFR

ARST NFG ATTAT NMG ATGHTG NKG TEEFR

ARSTNFGATTATNMGATGHTGNKGTEEFR

此处提供了使用代码26行的代码2行(第一行和最后一行)的简化代码。

The abridged code with representative 2 lines (first and last line) of the 26 lines of the code I use are provided here.

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'))


推荐答案

我找到了一个简单的解决方案,可能对某人有用像我一样。

I found a simple solution. May be it will be useful to someone like me.

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

这篇关于如何使用javascript突出显示一个包含两个已知字符之间的随机字符的子字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆