Estoy usando Blazor Server Side. Quiero seleccionar cierto texto del texto dentro del área de texto.
El caso es que obtuve la siguiente información de JSON y le pasé la función JS, es como analizar un texto para extraer los errores. Entonces tengo el número de línea primero/final y el número de columna primero/final
este es mi archivo json:
"error 1": [ { "error ": "issue with sometext", "lineStart": 3, "lineEnd": 3, "columnStart": 1, "columnEnd": 3 } ], "error 2": [ { "error ": "issue with sometext", "lineStart": 4, "lineEnd": 8, "columnStart": 2, "columnEnd": 5 } ], "error 3": [ { "error ": "issue with sometext", "lineStart": 7, "lineEnd": 5, "columnStart": 1, "columnEnd": 2 } ]¿Cómo puedo encontrar una función que haga eso por mí? Probé esta función Cómo seleccionar una línea de texto en el área de texto pero selecciona/resalta solo una línea, mientras que en mi caso es posible que deba resaltar varias líneas. Hice algunos cambios pero no pude obtener la solución.
Esta es la función que probé.
function selectTextareaLine(tarea,lineNum) { lineNum--; // array starts at 0 var lines = tarea.value.split("\n"); // calculate start/end var startPos = 0, endPos = tarea.value.length; for(var x = 0; x < lines.length; x++) { if(x == lineNum) { break; } startPos += (lines[x].length+1); } var endPos = lines[lineNum].length+startPos; // do selection // Chrome / Firefox if(typeof(tarea.selectionStart) != "undefined") { tarea.focus(); tarea.selectionStart = startPos; tarea.selectionEnd = endPos; return true; } } function CheckText(tarea,lineNum) { var tarea = document.getElementById('TareaID'); window.getSelection().removeAllRanges() selectTextareaLine(tarea,3); // selects line 3 }El resultado deseado si tengo este texto dentro de textarea.
Línea 1: Saluda a tu amigo
Línea 2: Saluda a tu amigo
Línea 3: Sya hola a tu amigo
Línea 4: Saluda a tu amigo
entonces, según el error 1 en json, hay un error en la tercera línea con los primeros tres dígitos. porque es 'Sya' y debería ser 'Decir', por lo que el resultado deseado es resaltar el número de línea y el inicio/final de columna que 'Decir' en nuestro ejemplo
Alguna idea ?