我正在运行以下代码来设置textarea中字符的限制:
(function($){
$.fn.extend({
limit: function(limit,element) {
var interval, f;
var self = $(this);
$(this).focus(function(){
interval = window.setInterval(substring,100);
});
$(this).blur(function(){
clearInterval(interval);
substring();
});
substringFunction = "function substring(){ var val = $(self).val();var length = val.length + carriages;if(length > limit){$(self).val($(self).val().substring(0,limit));}";
if(typeof element != 'undefined')
substringFunction += "if($(element).html() != limit-length){$(element).html((limit-length<=0)?'0':limit-length);}"
substringFunction += "}";
eval(substringFunction);
substring();
}
});
})(jQuery);
我的用户输入文本的区域最多可以容纳1500个字符。问题是它最多只能容纳10行。如果在输入回车符之前在一行中输入25个字符,则字符总数必须为150而不是26。
我该如何做到这一点?
答案 0 :(得分:6)
var string = "foo\nbar\nbaz";
console.log(string);
// foo
// bar
// baz
var lines = string.split(/\n/).length;
只需按每个新行拆分字符串,然后查看您有多少行。
答案 1 :(得分:0)
使用正则表达式的另一种解决方案始终非常有效。请注意,此解决方案计算的是修整车,而不是行
const string = "foo\nbar\nbaz";
const lines = (string.match(/\n/g) || []).length;
console.log(lines);