Я использую jquery, и у меня есть текстовое поле. Когда я отправляю свою кнопку, я буду предупреждать каждый текст, разделенный новой строкой. Как разбить мой текст, когда есть новая строка?
var ks = $('#keywords').val().split("\n");
(function($){
$(document).ready(function(){
$('#data').submit(function(e){
e.preventDefault();
alert(ks[0]);
$.each(ks, function(k){
alert(k);
});
});
});
})(jQuery);
пример ввода:
Hello
There
Результат, который я хочу:
alert(Hello); and
alert(There)
Вы должны анализировать символы новой строки независимо от платформы (операционной системы). Это разделение универсально для регулярных выражений. Вы можете использовать это:
Например
источник
Так должно быть
вы передаете команде split буквальную строку, а не регулярное выражение.
источник
"\n"
и/\n/
это две СОВЕРШЕННО разные вещи в JS."
= строка,/
= регулярное выражение."\n"
и/\n/
то же?Поскольку вы используете
textarea
, вы можете найти \ n или \ r (или \ r \ n) для разрывов строк. Итак, предлагается следующее:$('#keywords').val().split(/\r|\n/)
ref: проверьте, содержит ли строка разрыв строки
источник
/\r?\n/
... Я думаю, что использование|
(или) будет чередовать пустые результаты для окончаний строк CRLF.\r
) нигде в современном Интернете. Последнее место, где они широко использовались, было в старых версиях Mac OS почти 20 лет назад.Просто
var ks = $('#keywords').val().split(/\r\n|\n|\r/);
будет работать отлично.
Убедитесь, что оно
\r\n
находится в начале строки RegExp , потому что оно будет проверено первым.источник
g
в конце регулярного выражения не обязателенСамый простой и безопасный способ разделить строку с использованием новых строк, независимо от формата (CRLF, LFCR или LF), - это удалить все символы возврата каретки и затем разделить их на символы новой строки .
"text".replace(/\r/g, "").split(/\n/);
Это гарантирует , что , когда у вас есть постоянные новые линии (то есть
\r\n\r\n
,\n\r\n\r
или\n\n
) результат всегда будет то же самое.В вашем случае код будет выглядеть так:
Вот несколько примеров, демонстрирующих важность этого метода:
источник
var ks = $('#keywords').val().split("\n");
внутрь обработчика событийalert(ks[k])
вместоalert(k)
Демо
источник
Good'ol javascript:
источник
Проблема заключается в том, что при инициализации
ks
, тоvalue
не было установлено.Вам необходимо получить значение, когда пользователь отправит форму. Итак, вам нужно инициализировать
ks
внутреннюю функцию обратного вызоваисточник
Вот пример с
console.log
вместоalert()
. Так удобнее :)Вы можете попробовать здесь
источник
вам не нужно передавать здесь какие-либо регулярные выражения. это отлично работает ..
источник
источник