Как вы обнаружили, javascript не может обрабатывать разрыв строки в середине строки. Другими словами, следующий вывод вызовет ошибку js ...
<body onload="alert('te
st');">
Вы можете добавить обратную косую черту в конце ломаной, чтобы исправить эту ошибку ...
<body onload="alert('te \
st');">
Как сказал пользователь 765476, вы можете использовать PHP-функцию nl2br
для текста. Но добавим, что лучше всего делать это только тогда, когда вы на самом деле создаете вывод html. Одна из причин в том, что если вы когда-нибудь позволите пользователям редактировать текст, который они уже отправили, они увидят <br>
везде в текстовом поле, и вам придется разработать еще один скрипт для замены этих <br>
.
Если вы действительно хотите запретить пользователям отправлять разрывы строк (и любые возможные возвраты каретки), тогда используйте что-то вроде этого базового кода PHP, чтобы заменить их одним пробелом ...
str_replace(array("\r\n", "\r", "\n"), ' ', $message);
Примечание: важен порядок строк поиска. Первый проход заменяет все "\r\n"
, второй проход заменяет любые оставшиеся "\r"
, третий проход заменяет любые оставшиеся "\n"
( Редактировать: Я забыл "\r"
распознается в IE javascript , только не в некоторых других браузерах).