Je viens de tester quelques navigateurs en utilisant ce stupide bout de JavaScript :
function log_newline(msg, test_value) {
if (!test_value) {
test_value = document.getElementById('test').value;
}
console.log(msg + ': ' + (test_value.match(/\r/) ? 'CR' : '')
+ ' ' + (test_value.match(/\n/) ? 'LF' : ''));
}
log_newline('HTML source');
log_newline('JS string', "foo\nbar");
log_newline('JS template literal', `bar
baz`);
<textarea id="test" name="test">
</textarea>
Utilisation d'IE8 et d'Opera 9 sur Windows \r\n
. Tous les autres navigateurs que j'ai testés (Safari 4 et Firefox 3.5 sur Windows, et Firefox 3.0 sur Linux) utilisent \n
. Ils peuvent tous gérer \n
lors de la définition de la valeur, bien qu'IE et Opera le convertissent à nouveau en \r\n
à nouveau en interne. Il y a un article de SitePoint avec plus de détails appelé Les fins de ligne en Javascript .
Notez également que ceci est indépendant des fins de ligne réelles dans le fichier HTML lui-même (les deux \n
et \r\n
donnent les mêmes résultats).
Lors de la soumission d'un formulaire, tous les navigateurs canonisent les nouvelles lignes en %0D%0A
dans l'encodage URL. Pour voir cela, chargez par exemple data:text/html,<form><textarea name="foo">foo%0abar</textarea><input type="submit"></form>
et appuyez sur le bouton d'envoi. (Certains navigateurs bloquent le chargement de la page soumise, mais vous pouvez voir les valeurs du formulaire codées en URL dans la console).
Je ne pense pas que vous ayez vraiment besoin de faire beaucoup de détermination, cependant. Si vous voulez simplement couper le texte sur les nouvelles lignes, vous pouvez faire quelque chose comme ceci :
lines = foo.value.split(/\r\n|\r|\n/g);
7 votes
J'ai un contrôle de saisie multiligne où l'utilisateur doit entrer une liste séparée par des nouvelles lignes. J'ai besoin d'analyser la liste en divisant d'abord la chaîne de caractères sur les nouvelles lignes.
8 votes
@landon9720 : Pour mes contrôles d'entrée multi-lignes, j'ai une
getValue
qui prend levalue
et retournevalue.replace(/\r\n/g,'\n')
- juste pour que la sortie soit cohérente entre les navigateurs/plateformes.1 votes
Bonne question, surtout pour ceux qui sont novices en matière de programmation ! En dehors du HTML et du JavaScript, il est bon de savoir comment passer à la ligne suivante/nouvelle.
0 votes
Checkout npmjs.com/package/eol