Javascript 按 "enter" 计算文本区域内的文本数量
Javascript to count number of texts within textarea by "enter"
能否请您告知如何通过按 "enter" 来计算文本区域内的文本数量。
文本区域可以这样创建:
<textarea name="ta1" id="ta1" rows="4" cols="50">
ABC[enter]
DEF[enter]
GHI[enter]
</textarea>
<input type="text" name="textnumber" value="">
然后"textnumber"会瞬间显示“3”。谢谢
这个问题之前有人问过(see here)。
您可以使用 Regex 查找字符串中换行符的数量。
要匹配的模式是:/\n/g
,这意味着换行符出现的次数
参见this。
要计算文本区域中的换行符数量,您必须:
获取textarea的值var val = document.querySelector('textarea').value
然后计数\n
(换行)var res = val.match(/\n/g).length
要绑定结果并使其在您的输入中可视化,您可以将此过程包装在一个函数中,以便在每次文本区域更新时调用,
试试这个:
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)
<textarea name="ta1" id="ta1" rows="4" cols="50">
ABC DEF GHI
</textarea>
<input type="text" name="textnumber" value="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);
能否请您告知如何通过按 "enter" 来计算文本区域内的文本数量。
文本区域可以这样创建:
<textarea name="ta1" id="ta1" rows="4" cols="50">
ABC[enter]
DEF[enter]
GHI[enter]
</textarea>
<input type="text" name="textnumber" value="">
然后"textnumber"会瞬间显示“3”。谢谢
这个问题之前有人问过(see here)。
您可以使用 Regex 查找字符串中换行符的数量。
要匹配的模式是:/\n/g
,这意味着换行符出现的次数
参见this。
要计算文本区域中的换行符数量,您必须:
获取textarea的值
var val = document.querySelector('textarea').value
然后计数
\n
(换行)var res = val.match(/\n/g).length
要绑定结果并使其在您的输入中可视化,您可以将此过程包装在一个函数中,以便在每次文本区域更新时调用,
试试这个:
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)
<textarea name="ta1" id="ta1" rows="4" cols="50">
ABC DEF GHI
</textarea>
<input type="text" name="textnumber" value="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);