Javascript如何拆分换行符

我使用jquery,我有一个textarea,所以当我提交button时,我会以换行符单独提醒每个文本。 如何从换行符分割?

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

示例input:

 Hello There 

结果我想要的是:

 alert(Hello); and alert(There) 

尝试初始化你的提交函数中的ksvariables。

  (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); 

它应该是

 yadayada.val.split(/\n/) 

你正在传递一个string到分割命令,而不是一个正则expression式。

由于您使用的是textarea ,因此您可能会发现换行符\ n或\ r(或\ r \ n)。 所以build议如下:

$('#keywords').val().split(/\r|\n/)

ref: 检查string是否包含换行符

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

演示

你应该parsing换行符而不pipe平台(操作系统)这个用正则expression式分割是通用的,你可以考虑使用这个。

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

例如

 "a\nb\r\nc\r\nlala".split(/\r?\n/) // ["a", "b", "c", "lala"] 

问题是当你初始化ks ,这个value还没有被设置。

当用户提交表单时,您需要获取该值 。 所以你需要在callback函数中初始化ks

 (function($){ $(document).ready(function(){ $('#data').submit(function(e){ //Here it will fetch the value of #keywords var ks = $('#keywords').val().split("\n"); ... }); }); })(jQuery); 

Good'ol 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); }); 

你可以在这里尝试