Как я могу подсчитать количество пробелов текущей строки в текстовомПодсчитайте количество пробелов текущей строки в текстовом
asdf
asdf
asdf
Если мой курсор тока на линии 2, то результат должен быть : 3
Как я могу подсчитать количество пробелов текущей строки в текстовомПодсчитайте количество пробелов текущей строки в текстовом
asdf
asdf
asdf
Если мой курсор тока на линии 2, то результат должен быть : 3
Вот код:
window.onload = function() {
var ta = document.getElementById('ta'); //set your textarea's id
ta.onclick = function (e) {
var lineNo = ta.value.substr(0, ta.selectionStart).split(/\r?\n|\r/).length,
lineText = ta.value.split(/\r?\n|\r/)[lineNo - 1],
numOfSpaces = lineText.split(/\s/).length - 1;
console.log(lineNo, lineText, numOfSpaces);
}
}
Вот fiddle.
ПРИМЕЧАНИЕ:textarea.selectionStart
не работает в некоторых браузерах. Для поддержки кросс-браузера см. this post.
Вам нужно разделить значение строки текстового поля, а затем:
var textString = //pull data from textarea
var textArray = textString.split("\n");
for(var i=0; i<textArray.length; i++) {
var count = textArray[i].match(/ /g); //regex to get any number of spaces
alert(count.length);
}
Если регулярное выражение включает флаг 'g', метод возвращает массив, содержащий все совпадения. –
Почему бы не быть конструктивным, а не голосованием? –
OP требует более гранулированного решения, хочет знать, основываясь на позиционировании курсора. Также ваш цикл проверяет один и тот же 'textArray [0]' каждый раз – charlietfl