2010-03-27 15 views

risposta

39

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'); 
+25

potresti anche farlo in una riga: 'textblock.split (" \ n "). Slice (1) .join (" \ n ")' – nickf

+1

Questo non è efficiente per testi di grandi dimensioni con molte linee, usa il 'indexOf 'versione in quel caso. –

2

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> 
+0

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). –

+0

L'ho notato, grazie. Problemi con le forbici proverbiali qui ... – LesterDove

+0

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

0
var firstLineRemovedString = aString.replace(/.*/, "").substr(1); 
33

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!

+8

Questo è utile per file di grandi dimensioni perché evita la creazione di un array gigante. –

+2

Questo è l'approccio corretto se il testo ha molte linee. –

+0

Confido che nessuno stia utilizzando una sola \ r per le interruzioni di riga. – Andy

Problemi correlati