Czy \n
uniwersalna sekwencja znaków nowego wiersza w Javascript dla wszystkich platform? Jeśli nie, jak określić postać dla bieżącego środowiska?
Nie pytam o element HTML nowej linii ( <BR/>
). Pytam o sekwencję znaków nowego wiersza używaną w ciągach JavaScript.
javascript
newline
Landon Kuhn
źródło
źródło
getValue
funkcję, która przyjmujevalue
i zwracavalue.replace(/\r\n/g,'\n')
- tylko po to, aby zachować spójność danych wyjściowych między przeglądarkami / platformami.Odpowiedzi:
Właśnie przetestowałem kilka przeglądarek przy użyciu tego głupiego kodu JavaScript:
IE8 i Opera 9 w systemie Windows
\r\n
. Wszystkie pozostałe przeglądarki, które testowałem (Safari 4 i Firefox 3.5 w systemie Windows i Firefox 3.0 w systemie Linux) używają\n
. Wszystkie mogą\n
dobrze sobie poradzić przy ustawianiu wartości, chociaż IE i Opera przekonwertują ją z\r\n
powrotem wewnętrznie. Istnieje artykuł SitePoint z kilkoma dodatkowymi szczegółami o nazwie Zakończenia linii w JavaScript .Należy również zauważyć, że jest to niezależne od rzeczywistych zakończeń linii w samym pliku HTML (zarówno
\n
i\r\n
dają takie same wyniki).Podczas przesyłania formularza wszystkie przeglądarki kanonizują znaki nowej linii
%0D%0A
w kodowaniu adresów URL. Aby to zobaczyć, załaduj np.data:text/html,<form><textarea name="foo">foo%0abar</textarea><input type="submit"></form>
I naciśnij przycisk wysyłania. (Niektóre przeglądarki blokują ładowanie przesłanej strony, ale w konsoli można zobaczyć wartości formularza zakodowane w adresie URL).Nie sądzę jednak, aby naprawdę trzeba było wiele decydować. Jeśli chcesz po prostu podzielić tekst na nowe wiersze, możesz zrobić coś takiego:
źródło
\r\n
jak dwie nowe linie zamiast jednej. Jeśli chcesz krótko,/\r?\n/g
prawdopodobnie zrobi to (kto nadal używa Mac OS 9?).Tak, jest uniwersalny.
Chociaż
'\n'
są to uniwersalne znaki nowej linii , należy pamiętać, że w zależności od wprowadzonych znaków, nowe znaki linii mogą być poprzedzone znakami powrotu karetki ('\r'
).źródło
Nie używaj „\ n”. Po prostu spróbuj tego:
Po prostu wprowadź ukośnik i kontynuuj jazdę! Działa jak marzenie.
źródło
tilde
znakiem (inaczej nazywany backstick).~
Tilde vs`
Backtick .Najłatwiej jest po prostu obsłużyć wszystkie przypadki nowego znaku linii zamiast sprawdzania, który przypadek następnie zastosować. Na przykład, jeśli chcesz zastąpić nowy wiersz, wykonaj następujące czynności:
źródło
tak, użyj \ n, chyba że generujesz kod HTML, w którym chcesz użyć
<br />
źródło
Funkcja linku e-mail używam „% 0D% 0A”
[HTML]
źródło
Uzyskaj separator linii dla bieżącej przeglądarki:
źródło
return textarea.value;
?JSON.stringify
wyniku zmieni postać? Jeśli spróbuję wyświetlić wynik walert()
wywołaniu, nie pokaże mi znaku, chyba że najpierw go skreślę (nie chodzi o to, że znak musi być czytelny dla człowieka, aby był skuteczny)Uwaga - podczas korzystania z ExtendScript JavaScript (języka Adobe Scripting używanego w aplikacjach takich jak Photoshop CS3 +), używanym znakiem jest „\ r”. „\ n” będzie interpretowane jako znak czcionki, a zatem wiele czcionek będzie miało znak blokowy.
Na przykład (aby wybrać warstwę o nazwie „Uwaga” i dodać informacje o wierszach po wszystkich kropkach):
źródło
\n
i<br/>
nie działałem w moim skrypcie Photoshop ... Dzięki!Możesz użyć cudzysłowu (które są poniżej przycisku Esc) w ES6. Możesz więc napisać coś takiego:
źródło
Wierzę, że tak - kiedy pracujesz z ciągami JS.
Jeśli jednak generujesz HTML, będziesz musiał użyć
<br />
tagów (nie\n
, ponieważ nie masz już do czynienia z JS)źródło
Miałem problem z wyrażeniem nowej linii za pomocą \ n lub \ r \ n .
Magicznie postać \ r , który jest używany do powrotu karetki pracował dla mnie jak znak nowej linii.
Dlatego w niektórych przypadkach warto rozważyć również r.
źródło
Wydruki:
źródło
Praktyczna obserwacja ... W moim skrypcie NodeJS mam następującą funkcję:
Najpierw miałem tylko „\ n”, ale zauważyłem, że kiedy otwieram plik dziennika w Notatniku, pokazuje on wszystkie wpisy w tym samym wierszu. Z drugiej strony Notepad ++ pokazuje wpisy w osobnych wierszach. Po zmianie kodu na „\ r \ n” nawet Notatnik pokazuje każdy wpis we własnej linii.
źródło
To
\n
jest w porządku dla wszystkich przypadków, które napotkałem. Jeśli pracujesz z siecią, korzystaj z niej\n
i nie przejmuj się nią (chyba że masz jakieś problemy związane z nową linią).źródło
można użyć
<br/>
adocument.write/
,document.writeln
jeden.źródło
<br>