Обновление в 2015 году : Как видно из приведенного ниже, даже в 2011 году Chrome и Firefox использовали \n
на всех платформах.Opera и IE использовали \r\n
в Windows.С тех пор Opera переключилась на WebKit, такой как Chrome, и поэтому предположительно использует \n
.IE8 был последним IE, который использовал \r\n
в текстовых областях;начиная с IE9, IE также использует только \n
.Не тестировали мобильные браузеры.
Пришло довольно поздно на вечеринку, но если вы действительно хотите узнать, какой символ разделителя строк использует браузер в textarea
s итакое (которое может варьироваться в браузере даже на одной и той же ОС ), вы можете узнать с помощью хитрого трюка:
function getLineBreakSequence() {
var div, ta, text;
div = document.createElement("div");
div.innerHTML = "<textarea>one\ntwo</textarea>";
ta = div.firstChild;
text = ta.value;
return text.indexOf("\r") >= 0 ? "\r\n" : "\n";
}
Это работает, потому что браузеры, которые используют \r\n
конвертировать \n
на лету при разборе строки HTML.Вот живая копия , которую вы можете попробовать сами с помощью своих любимых браузеров.В IE и Opera (даже Opera работает на * nix), вы обнаружите, что это \r\n
.На Chrome, Firefox и Safari (даже на Windows) вы обнаружите, что это \n
.
Тем не менее, мой опыт показывает, что вставка \n
(например, при назначении на value
)свойство, в отличие от приведенной выше строки HTML) работает даже в браузерах, которые обычно используют \r\n
.Но это не значит, что нет крайних случаев, и я должен признать, что я не делаю это (вставка разрывов строк в textarea
s) с какой-либо регулярностью, поэтому, если есть проблемы, и я действительно должен бытьиспользуя \r\n
в некоторых браузерах, возможно, я просто не нашел их.