【问题标题】:Check for linebreaks in textarea with jQuery使用 jQuery 检查 textarea 中的换行符
【发布时间】:2011-03-06 19:43:15
【问题描述】:
我想为文本区域中的每个换行符设置一个计数器。这在上传大量网络横幅时使用,所以我需要一个简单的计数器来计算用户添加了多少。目前,计数器仅在用户按下具有特殊横幅尺寸的链接时才起作用。
这是我现在的代码:
var i = 0;
$('.size').click(function(){
$('#total-number').text(i++);
return false;
});
【问题讨论】:
标签:
jquery
counter
line-breaks
【解决方案1】:
你的意思是一个换行的单行字符串。如果我没记错的话,换行符是在按下 Enter 或 Shift+Enter 时创建的。
【解决方案2】:
当您手动按 Enter 时它可以工作,但是有没有办法计算 textarea 在您复制粘贴数据时创建的换行符?我的意思是,如果您为 textarea 定义宽度然后粘贴一些文本,它将创建换行符...
【解决方案3】:
使用正则表达式,您的问题可以这样解决(在文本区域中搜索换行符“\n”)):
//assuming $('#total-number') is your textarea element
var text = $('#total-number').val();
// look for any "\n" occurences
var matches = text.match(/\n/g);
// count them, if there are any
var breaks = matches ? matches.length : 0;
breaks 变量现在包含文本中的换行数。
【解决方案4】:
利用字符串split函数...
var text = $('#total-number').text();
var eachLine = text.split('\n');
alert('Lines found: ' + eachLine.length);
for(var i = 0, l = eachLine.length; i < l; i++) {
alert('Line ' + (i+1) + ': ' + eachLine[i]);
}
【解决方案5】:
在文本区域中搜索“\n”。
为了确定,对模式“\\n”进行正则表达式搜索并计算匹配数组,这将是换行数。