in JavaScript, se ho un blocco di testo in questo modoEliminare una riga di testo in javascript
Line 1
Line 2
Line 3
cosa avrei bisogno di fare per diciamo eliminare la prima riga e trasformarlo in:
Line 2
Line 3
in JavaScript, se ho un blocco di testo in questo modoEliminare una riga di testo in javascript
Line 1
Line 2
Line 3
cosa avrei bisogno di fare per diciamo eliminare la prima riga e trasformarlo in:
Line 2
Line 3
Il modo più pulito di fare questo è quello di utilizzare il dividere e unire funzioni, che vi permetterà di manipolare il blocco di testo come una serie di linee, in questo modo:
// break the textblock into an array of lines
var lines = textblock.split('\n');
// remove one line, starting at the first position
lines.splice(0,1);
// join the array back into a single string
var newtext = lines.join('\n');
In poche parole: (. ed è incluso) Cercare il primo ritorno riga (\ n) e utilizzare la funzione JavaScript replace
per rimuovere tutto ciò che fino ad esso
Ecco una regex che lo fa (surprisi ngly difficile, almeno per me ...)
<script type = "text/javascript">
var temp = new String('Line1\nLine2\nLine3\n');
temp = temp.replace(/[\w\W]+?\n+?/,"");
alert (temp);
</script>
Poiché si utilizza il parametro/g ("global replace"), credo che questa espressione abbia l'effetto di eliminare tutte le righe (tranne l'ultima, se non è terminata a capo). –
L'ho notato, grazie. Problemi con le forbici proverbiali qui ... – LesterDove
Penso che la domanda fosse più cercare di rimuovere una * linea specifica * piuttosto che solo la prima linea. Questa soluzione non funziona molto bene per eliminare righe arbitrarie per numero o per contenuto. – ShZ
var firstLineRemovedString = aString.replace(/.*/, "").substr(1);
Ciò elimina la prima linea da una variabile stringa a più linee - testato in Chrome versione 23 su una variabile che è stata letta da file (HTML5) con fine riga/pause che hanno mostrato come CRLF (carriage return + line feed) in Notepad ++:
lines = lines.substring(lines.indexOf("\n") + 1);
Spero che questo aiuti!
Questo è utile per file di grandi dimensioni perché evita la creazione di un array gigante. –
Questo è l'approccio corretto se il testo ha molte linee. –
Confido che nessuno stia utilizzando una sola \ r per le interruzioni di riga. – Andy
potresti anche farlo in una riga: 'textblock.split (" \ n "). Slice (1) .join (" \ n ")' – nickf
Questo non è efficiente per testi di grandi dimensioni con molte linee, usa il 'indexOf 'versione in quel caso. –