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)
尝试初始化你的提交函数中的ks
variables。
(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是否包含换行符
- 移动
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);
演示
你应该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); });
你可以在这里尝试