javascript - 如何计算按制表符、空格、删除和退格键时的字符数?

标签 javascript jquery

我知道这个问题可能是重复的,但到目前为止我无法找到解决方案。可能是我搜索的方式不对。

我需要使用“空格键”“tab 键”“删除”或“退格键”来计算 textarea 的总字符数以及空格。

到目前为止,我有以下代码,但我不知道为什么它在计数中不考虑制表符空间。

<textarea id="myTextArae"></textarea>
$("#myTextArae").on("keydown", function(e) {
  if (e.keyCode === 9) { // tab was pressed
    let start = this.selectionStart;
    let end = this.selectionEnd;
    var $this = $(this);
    $this.val($this.val().substring(0, start) + "\t" + $this.val().substring(end));
    this.selectionStart = this.selectionEnd = start + 1;
    var txt = $("#balanceCharacInTxtarea").val();
    if (txt != parseInt("0")) {
      e.preventDefault();
    }
    return false;
  }
})

$("#myTextArea").on("paste", function (e) {
  setTimeout(function () {
    that.check(e, e1, 0);
  }, 100);
});

check(eventcode, e1, code) {
  if (code === 0) {
    this.calculate = this.characterCount(e, e1, default);
  } if (code === 1) {
    this.calculate = e1 ? e1.length : 0;
  }
}
var default = 175

最佳答案

像这样简单的事情怎么样

 $("#yourtextarea").keyup(function() {
    var count = $("#yourtextarea").val().length;
 });

这将计算空格、制表符、换行符和其他字符。
它也会在粘贴时触发。

示例:

$(document).ready(function(){
    $("#test").html(0);

    //this is for counting the characters
    $("#message").keyup(function() {
        var txtlgt = $("#message").val().length;
        $("#test").html(txtlgt);
    });
    
    //This is for enabling tabs in the textarea
    $("#message").on("keydown", function(e) {
        if (e.keyCode === 9){ 
            let start = this.selectionStart;
            let end = this.selectionEnd;
            var $this = $(this);
            $this.val($this.val().substring(0, start) + "\t" + $this.val().substring(end));
            this.selectionStart = this.selectionEnd = start + 1;
            return false;
        }
    })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test"></div>

<textarea id="message"></textarea>

关于javascript - 如何计算按制表符、空格、删除和退格键时的字符数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48152005/

相关文章:

javascript - 从 javascript 同步调用 Struts 2 操作

javascript - 如何在 jQuery 上正确重写 JS 函数

javascript - 防止在 javascript 中粘贴单引号和双引号

javascript - 用 stroke-dasharray 和事件颜色填充划分半圆

javascript - KineticJS dragBoundFunc 不工作

javascript - Android转义JavaScript字符串

javascript - 如果数据被删除且未写入任何内容,则将数据重新写入文本框

jquery - jQuery livequery 插件的替代品?

javascript - 在移动设备上禁用 Hover Div 内的 anchor ,直到打开

jquery - 垂直菜单固定事件类