2013-02-19 34 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

您需要拆分textarea的字符串值,然后:

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'标志,则该方法返回一个包含所有匹配的数组。 – 2013-02-19 01:58:37

+0

为什么不是建设性的而不是投票? – 2013-02-19 02:01:06

+1

OP需要更细粒度的解决方案,想知道基于光标位置。您的循环每次都检查相同的'textArray [0]' – charlietfl 2013-02-19 02:03:26

相关问题