2016-11-19 1 views
0

У меня есть группа строк в кадре данных, как показано ниже.Как выделить подстроку, содержащую случайный символ между двумя известными символами с помощью javascript?

   v1     v2 
ARSTNFGATTATNMGATGHTGNKGTEEFR SEQUENCE1 
BRCTNIGATGATNLGATGHTGNQGTEEFR SEQUENCE2 
ARSTNFGATTATNMGATGHTGNKGTEEFR SEQUENCE3 

Я хочу, чтобы искать и выделить некоторые выбранные подстроки в пределах каждой строки в столбце v1. Например, предполагая, что первая буква в подстроке будет выглядеть как «N», а последняя буква «G», а средняя может быть любой буквой, как в «N A G» или «N B G» или "N C G" или "N D G" и так далее. Чтобы выделить подстроку из трех символов, как показано ниже, я пишу 26 строк кода для отображения на вкладке R Shiny, предполагая, что может быть любое из 26 букв между «N» и «G». Я просто пытаюсь оптимизировать код. Я новичок в JS. Надеюсь, я поняла. Если не до голосования вниз, пожалуйста, дайте мне знать, если вам нужно больше объяснений или деталей.

АРСТ НФГ ATTAT НМГ ATGHTG НКГ TEEFR

BRCT НИГ ATGAT гульденов ATGHTG NQG TEEFR

АРСТ НФГ ATTAT НМГ ATGHTG НКГ TEEFR

Здесь приводится сокращенный код с репрезентативными 2 строками (первая и последняя строка) из 26 строк кода, который я использую.

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

ответ

1

Я нашел простое решение. Может быть, это будет полезно для кого-то вроде меня.

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

Я думаю, что регулярное выражение вы хотите:/N [AZ] G/г

Если вы хотите работать в нижнем регистре:/N [A-Za-Z] G/г

+0

Как представить заменяющую строку? > NXG <. Должно ли быть> N [A-Za-z] G RanonKahn

+0

Сменная строка заменяет все, что соответствовало регулярному выражению, поэтому вам нужно будет включить N и G и все, что вы хотите между ними. –