通过“输入”计算textarea中文本数量的Javascript

时间:2016-08-08 07:50:24

标签: javascript text textarea enter

您可以通过按“输入”告知如何在文本区域内计算文本数量。

可以像这样创建Textarea:

 <textarea name="ta1" id="ta1" rows="4" cols="50">
 ABC[enter]
 DEF[enter]
 GHI[enter]
 </textarea>
 <input type="text" name="textnumber" value="">

然后“textnumber”将立即显示“3”。感谢。

3 个答案:

答案 0 :(得分:0)

之前已经问过这个问题(see here)。

您可以使用Regex查找字符串中的换行符数。 要匹配的模式是:/\n/g,表示换行符的出现次数

请参阅this

答案 1 :(得分:0)

要计算textarea中的换行符数量,您必须:

  • 获取textarea var val = document.querySelector('textarea').value

  • 的值
  • 然后计算\n(换行符)var res = val.match(/\n/g).length

要绑定结果并在输入中显示它,您可以将此过程包装在每个textarea更新中调用的函数中,

试试这个:

&#13;
&#13;
var tarea = document.querySelector('textarea')
var input = document.querySelector('input')

function update() {
  var res = (tarea.value.match(/\n/g)) ? tarea.value.match(/\n/g).length : 0;
  //                 ^^^^^^
  //          this is a ternary (like a conditional check)
  input.value = res;
}

tarea.addEventListener('input', update)
&#13;
<textarea name="ta1" id="ta1" rows="4" cols="50">
  ABC DEF GHI
</textarea>
<input type="text" name="textnumber" value="0">
&#13;
&#13;
&#13;

答案 2 :(得分:0)

尝试以这种方式做到这一点

function getEntersCount(textarea, result) {
   var text = textarea.value,
       enters = text.split(/\r|\r\n|\n/),
       count = enters.length;

   result.value = count;
}

getEntersCount(
    document.getElementById("ta1"), 
    document.querySelector('[name="textnumber"]')
);

猜猜这会对你有所帮助

编辑1

getEntersCount(
    document.getElementById("ta1"), 
    document.getElementById('textnumber')
);

编辑2

// Function will take text and return count of lines in it
function getEntersCount(text) {
    var enters = text.split(/\r|\r\n|\n/),
        count = enters.length;       
    return count;
}

// Usage example
var count = getEntersCount(document.getElementById("ta1").value) 
console.log(count);