计算textarea中加载文件中的字符数?

时间:2017-07-20 14:21:06

标签: javascript html file-upload text-editor counting

当我在textarea中输入

时,我可以计算字符数



function count_up(obj){
  document.getElementById('numbers').innerHTML = obj.value.length;
}

<textarea name="textField" class="text_edit" id="my_text"  onkeyup="count_up(this);"></textarea><br/>
<span id="numbers">0</span>
&#13;
&#13;
&#13;

但是当我将它加载到textarea时,我想计算文件中的字符数。这个功能还可以,但是如果我想计算文件中的字符数量,我必须在加载的文本中添加一些东西(它是这样的 直观)。我可以做些什么来解决它吗?

3 个答案:

答案 0 :(得分:2)

textarea {
        width: 100%;
        height: 150px;
        padding: 12px 20px;
        box-sizing: border-box;
        border: 2px solid #ccc;
        border-radius: 4px;
        background-color: #f8f8f8;
        font-size: 16px;
        resize: none;
    }
<textarea name="" id="" cols="30" rows="10"  onkeyup="countCharToMax(this)"></textarea>
        <div id="charNum">0/30</div>
    
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script>
        function countCharToMax(val) {
            var max = 30;
            var min = 0;
            var len = val.value.length;
            if (len >= max) {
                val.value = val.value.substring(min, max);
                $('#charNum').text(len + '/'+max);
            } else {
                $('#charNum').text(len + '/'+max);
        
            }
        };
    </script>

答案 1 :(得分:0)

使用此代码计算keyup事件中的字符数。

job

答案 2 :(得分:0)

考虑使用承诺。类似的东西:

function loadFile() {
  return new Promise((resolve, reject) => {
    try{
        //Function about loading file
        //...
        resolve(obj);
    } catch (e) {
        reject(e);
    }
  });
};

然后你应该能够通过以下方式获得计数:

loadFile()  //Will do count_up after the text is loaded
    .then(function(obj){ 
         count_up(obj);
     })
    .catch((reason) => {
         console.log('Handle rejected promise ('+reason+') here.');
     });