Javascript как разделить новую строку
Я использую jquery, и у меня есть textarea, поэтому, когда я отправлю кнопку, я буду предупреждать каждый текст отдельно по новой строке. Как разделить от новой строки?
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)
9 ответов:
попробуйте инициализации
ks
переменная внутри вашей функции отправки.(function($){ $(document).ready(function(){ $('#data').submit(function(e){ var ks = $('#keywords').val().split("\n"); e.preventDefault(); alert(ks[0]); $.each(ks, function(k){ alert(k); }); }); }); })(jQuery);
Он должен быть!--2-->
yadayada.val.split(/\n/)
вы передаете в литеральную строку команду split, а не регулярное выражение.
Если вы используете
textarea
, вы можете найти \n или \r (или \r\n) для разрывов строк. Итак, предлагается следующее:
$('#keywords').val().split(/\r|\n/)
вы должны разобрать строку независимо от платформы (операционной системы) Это разделение с регулярным выражением является универсальным, вы можете использовать это.
var ks = $('#keywords').val().split(/\r?\n/);
например.
"a\nb\r\nc\r\nlala".split(/\r?\n/) // ["a", "b", "c", "lala"]
- перемещение
var ks = $('#keywords').val().split("\n");
внутри обработчика события- использовать
alert(ks[k])
вместоalert(k)
(function($){ $(document).ready(function(){ $('#data').submit(function(e){ e.preventDefault(); var ks = $('#keywords').val().split("\n"); alert(ks[0]); $.each(ks, function(k){ alert(ks[k]); }); }); }); })(jQuery);
просто
var ks = $('#keywords').val().split(/\r\n|\n|\r/);
будет прекрасно работать.
обязательно
\r\n
помещается в начало и строка, потому что она будет опробована в первую очередь.
проблема в том, что при инициализации
ks
наvalue
не был установлен.вы нужно получить значение когда пользователь отправляет форму. Так что вам нужно инициализации
ks
внутри функции обратного вызова(function($){ $(document).ready(function(){ $('#data').submit(function(e){ //Here it will fetch the value of #keywords var ks = $('#keywords').val().split("\n"); ... }); }); })(jQuery);
хороший стандартном телефоне на JavaScript:
var m = "Hello World"; var k = m.split(' '); // I have used space, you can use any thing. for(i=0;i<k.length;i++) alert(k[i]);
вот пример
console.log
вместоalert()
. Это удобнее :)var parse = function(){ var str = $('textarea').val(); var results = str.split("\n"); $.each(results, function(index, element){ console.log(element); }); }; $(function(){ $('button').on('click', parse); });
вы можете попробовать здесь