gpt4 book ai didi

javascript - JQuery字符限制器同时忽略文本区域中的空格

转载 作者:行者123 更新时间:2023-11-28 00:04:11 25 4
gpt4 key购买 nike

我研究了各种 JQuery 插件来限制用户可以在文本区域中键入的字符数,但我还没有真正找到忽略空格的插件。我尝试使用 $('textarea').val().replace(//g,'').length 修改带有限制器的现有字符计数器,它确实有效。但是,当代码达到限制时,我希望用户无法再向文本区域键入任何内容。然而,它实际上并不是那样工作的。

插件代码如下:

(function ($) {
$.fn.extend({
limiter: function (limit, elem) {
$(this).on("keyup focus", function () {
setCount(this, elem);
});

function setCount(src, elem) {
var chars = src.value.replace(/ /g,'').length;
if (chars > limit) {
src.value = src.value.substr(0, limit);
chars = limit;
}
elem.html(limit - chars);
}
setCount($(this)[0], elem);
}
});
})(jQuery);

我认为问题在于 src.value = src.value.substr(0, limit);因为 limit 变量仍然会将空格计为字符。作为 JQuery 的初学者,我不太确定如何处理这个问题。

任何帮助将不胜感激。提前致谢!

这是我目前所拥有的 fiddle :http://jsfiddle.net/dxUsK/1/

这是原始插件的链接:http://www.scriptiny.com/2012/09/jquery-input-textarea-limiter/

最佳答案

问题在于您的正则表达式正在从字符串中删除空格字符,然后当您设置源值时,您已经删除了所有空格字符。一个简单的解决方法是计算空格的数量,然后将其包含在字符串长度中。

// Count the number of space characters.
var spaces = src.value.split(' ').length - 1; // remove 1 for index 0 later
if (chars > limit) {
src.value = src.value.substr(0, limit + spaces); // Don't forget the spaces here!

还有一些其他方法可以做到这一点,但这是一般的想法。

关于javascript - JQuery字符限制器同时忽略文本区域中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19482444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com