2013-02-19 4 views

ответ

0

Вот код:

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.

0

Вам нужно разделить значение строки текстового поля, а затем:

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); 
} 

http://jsfiddle.net/2qfHn/

+0

Если регулярное выражение включает флаг 'g', метод возвращает массив, содержащий все совпадения. –

+0

Почему бы не быть конструктивным, а не голосованием? –

+1

OP требует более гранулированного решения, хочет знать, основываясь на позиционировании курсора. Также ваш цикл проверяет один и тот же 'textArray [0]' каждый раз – charlietfl

Смежные вопросы