En javascript, si j'ai un bloc de texte comme ça
Line 1
Line 2
Line 3
Que devrais-je faire pour supprimer la première ligne et la transformer en:
Line 2
Line 3
Pour ce faire, le moyen le plus simple consiste à utiliser les fonctions de scission et de jointure, ce qui vous permettra de manipuler le bloc de texte comme un tableau de lignes, comme suit:
// 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');
Cela supprime la première ligne d'une variable de chaîne multiligne - testée dans la version 23 de Chrome sur une variable lue à partir d'un fichier (HTML5) avec des fins de ligne/sauts affichés sous la forme CRLF (retour chariot + saut de ligne) dans Notepad ++:
var lines = `first
second
third`;
// cut the first line:
console.log( lines.substring(lines.indexOf("\n") + 1) );
// cut the last line:
console.log( lines.substring(lines.lastIndexOf("\n") + 1, -1 ) )
J'espère que cela pourra aider!
En un mot: recherchez le retour à la première ligne (\ n) et utilisez la fonction JavaScript replace
pour tout supprimer (et l'inclure).
Voici un RegEx qui le fait (étonnamment difficile, du moins pour moi ...)
<script type = "text/javascript">
var temp = new String('Line1\nLine2\nLine3\n');
temp = temp.replace(/[\w\W]+?\n+?/,"");
alert (temp);
</script>
var firstLineRemovedString = aString.replace(/.*/, "").substr(1);
Je suis allé un peu plus loin pour vous permettre de sélectionner le nombre de lignes à partir du début que vous souhaitez supprimer:
J'utilise cette expression régulière où X
est le nombre de lignes que vous souhaitez supprimer +1 (?:.*?\n){X}(?:.*?\n)
const lines = `Line1
Line2
Line3
Line4`;
const deleteLines = (string, n = 1)=>{
return string.replace(new RegExp(`(?:.*?\n){${n-1}}(?:.*?\n)`), '');
};
console.log(deleteLines(lines, 2));