2016-06-17 3 views
1

Ich möchte den Wert eines Textfelds mit \n teilen und die Zeile, in der der Cursor steht, als letzten Wert im Array festlegen:So teilen Sie den Wert eines Textfelds mit der Cursorposition als letzte Zeile

1. fyg tgiyu rctvyu cuiby cutv cutrvyb crtvyb 
2. rutyu rtcvyb ctrvybu ctrvybu rtcvy 
3. rutiyu crtvyu crtvyb rtvyb 
4. | 
5. tgyho8uji vtybui 
6. tvybui yivtubi 

Jetzt sind die Zahlen die Zeilen im Textfeld und Zeile 4 ist die Zeile, in der sich der Cursor befindet. also möchte ich die Zeilen teilen, die Zeile 5 und 6 ignorieren, Zeile 4 als letzte Zeile haben. Dann werde ich einen Code wie folgt aus:

lastLine = //the position of the cursor 
if(lastLine == ""){ 
    console.log('empty'); 
} else { 
    //get the value of the previous line before the lastLine 
} 

Bitte, wie erreiche ich diese mit jQuery oder JavaScript

+0

Was haben Sie versucht? – nicael

Antwort

0

Sie erreichen dies durch die jQuerysubstr().

Sie wählen den Teilstring des Textarea-Werts vom Anfangspunkt bis zum Punkt, an dem sich der Cursor befindet, und teilen ihn mit Zeilenumbrüchen. So was;

value = $('textarea').val(); 
// to get the position of the cursor 
index = $('textarea').prop('selectionstart'); 
// select all from the starting point to the cursor position ignoring line 5 and 6 
str = value.substr(0, index); 
// split the str with a line break 
splt = str.split('\n'); 
// then finally to get your last line 
lastLine = splt[splt.length - 1]; 
0

$('#theTextArea').prop("selectionStart"); und

$('#theTextArea').prop("selectionEnd");

Die oben genannten Eigenschaften geben Sie den Speicherort der Cursor auf modernen Browsern. Diese Frage wurde linked here before though. Für ältere Browser könnte dies problematisch sein.

Aber angesichts der Cursorposition sollten Sie in der Lage sein, den Teilstring einfach zum Cursor-Index zu greifen. Verwenden Sie dann eine Regex, um den Inhalt der letzten Zeile an das Ende der Zeichenfolge zu bringen.