Как найти строку в заданных последовательностях и скопировать всю последовательность в другое текстовое поле? - PullRequest
0 голосов
/ 28 марта 2019

Мне нужно найти данную последовательность в текстовой области и скопировать ее в другое поле.Например, мои входные данные и текстовая область будут выглядеть следующим образом:

Входные данные: CGGGAGGAA
Texarea:
@ M04644: 45: 147451: 110237731
AGGGCGATGTCCTGGGATACGCGGGTGTCACGGGGGAACCTACT * 100 * 1 * 100 100 * *? DAC333EFFAFGGGGCC9A-9; A - 9-AAFB? - 99- @ A9 - /; / B / ;:
@ a0add382: 1aaaa1: 11023: 24dsa31
AGGGCGATGTCCTGGGATACGCGG * * 101CGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTTGT> 1AD? DAC333EFFAFGGGGCC9A-9; A - 9-AAFB? - 99- @ A9 - /; / B / ;:
.
.
.

и этот текст продолжается.Теперь я хочу найти все последовательности CGGGAGGAA из значения textarea и нажать на предыдущую строку, строка содержит CGGGAGGAA и следующие две строки во вторую текстовую область.Таким образом, моя вторая область будет выглядеть так:

@ a0add382: 1aaaa1: 11023: 24dsa31
AGGGCGATGTCCTGGGATACGCGGGTGTCATATGCCTTCCTGATCTGCCCAACCATCTG
+
GF?-99- @ A9 - /; / B / ;:

Любая помощь очень ценится.Заранее спасибо.

document.getElementById('search').addEventListener('click', stringSearch);

function stringSearch() {
    var searchSequence = document.getElementById('searchSequence').value;
    var text = document.getElementById('text').value;
    var result = [];
    
    if(searchSequence.length > 0 && text.includes(searchSequence)) {
        alert("found");
    } else {
        alert("Not found");
    }
} 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <input id="searchSequence" type="text"> <br>
    <br>
    <textarea id="text" name="" id="" cols="30" rows="10" wrap="off">

    </textarea> <br>

    <textarea name="" id="copy" cols="30" rows="10" wrap="off"></textarea> <br>
    
    <button type="button" id="search">Search</button>

    <script src="main.js"></script>
</body>
</html>

1 Ответ

0 голосов
/ 28 марта 2019

Разбить входной текст на символ конца строки

поиск по каждой строке

если найдено, поместите соответствующие значения в массив

document.getElementById('search').addEventListener('click', stringSearch);

function stringSearch() {
  const searchSequence = document.getElementById('searchSequence').value;
  const text = document.getElementById('text').value;
  const dest = document.getElementById('copy');
  const lines = text.split(/\r?\n/g);
  const result = lines.flatMap((line, i) => line.includes(searchSequence) ? lines.slice(i-1, i+3) : []);
  
  if (result.length) {
    dest.value = result.join('\n');
  } else {
    dest.value="**not found**";
  }
}
<input id="searchSequence" type="text"> <br>
<br>
<textarea id="text" cols="30" rows="10" wrap="off"></textarea>
<br/><br/>
<textarea id="copy" cols="30" rows="10" wrap="off"></textarea>
<br/>
<button type="button" id="search">Search</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...