Estoy tratando de crear una función en Javascript que pueda leer un cuadro de entrada línea por línea y devolver diferentes valores según la entrada.
Por ejemplo, si alguien ingresa varias mutaciones de proteínas en líneas separadas con el formato Arg86Lys, quiero que la función lea las primeras tres y las últimas tres letras para obtener Arg Lys. Luego, si tengo un valor almacenado para Arg Lys (digamos 100), quiero que la salida sea un cuadro de texto que imprima el valor 100 (e imprima el resto de los valores en líneas separadas).
Estoy atascado en cómo leer el valor del cuadro de entrada línea por línea, y solo extraigo las primeras tres y las últimas tres letras de cada línea. Tampoco entiendo cómo puedo almacenar valores (como Arg Lys = 100) y devolver dichos valores cuando se encuentra una determinada entrada.
Hasta ahora, he creado un cuadro de texto de varias líneas (en HTML) y he intentado crear una función que lea línea por línea:
<body> <form action = "/cgi-bin/hello_get.cgi" method = "get"> Enter mutations on separate lines with format Arg86Lys <br> <textarea rows = "5" cols = "60" name = "description"> </textarea><br> <input type = "submit" value = "submit" /> </form> <script> var lines = document.getElementById('textareaId').innerHTML.split('\n'); for(var i = 0;i < lines.length;i++){ \\ } </script> </body>textarea es una entrada, por lo que su valor se almacenará en su propiedad de valor y se transmitirá junto con el envío del formulario. Aquí hay una respuesta que encontré que explica cómo interceptar el evento de envío para el formulario:
Interceptar el envío de un formulario en JavaScript y evitar el envío normal
Una vez que haya interceptado el evento de envío del formulario, extraiga el valor de la entrada de description y haga con él lo que quiera desde allí.
let form = document.getElementById("form"); let data = {"Arg Lys":100}; // store data like this form.addEventListener("submit",function(e){ e.preventDefault(); var lines = document.getElementById('textareaId').value.split('\n'); document.getElementById('textareaId').value = ''; for(var i = 0;i < lines.length;i++){ let val = lines[i].substring(0,3); let lastval = lines[i].substring(lines[i].length - 3) document.getElementById('textareaId').value += val+' '+lastval + ' - ' +data[val+' '+lastval]+'\n'; } }) <body> <form id="form" action = "/cgi-bin/hello_get.cgi" method = "get"> Enter mutations on separate lines with format Arg86Lys <br> <textarea id="textareaId" rows = "5" cols = "60" name = "description"></textarea><br> <input type = "submit" value = "submit" /> </form> </body>¿Estás buscando algo así?