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 54

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/)

ref:проверьте, содержит ли строка разрыв строки

вы должны разобрать строку независимо от платформы (операционной системы) Это разделение с регулярным выражением является универсальным, вы можете использовать это.

var ks = $('#keywords').val().split(/\r?\n/);

например.

"a\nb\r\nc\r\nlala".split(/\r?\n/) // ["a", "b", "c", "lala"]
  1. перемещение var ks = $('#keywords').val().split("\n"); внутри обработчика события
  2. использовать 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);
});

вы можете попробовать здесь