2013-11-27 26 views
2

我正在製作一個虛擬書寫器,並且在計算段落節點內的textnode中的字母時遇到了問題。在文本節點中計數字母

代碼如下所示:http://jsfiddle.net/Rfq68/ 我的問題是在countLetters()函數,我想是這樣的:

var temp = ntext.match(new RegExp(search.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "g")); 
count = temp; 

但它並沒有在所有的工作,我現在需要你的幫助!

謝謝!

+0

怎麼樣'ntext.length' –

+0

我只想如何'ntext.replace字母,無空格,逗號,連字符等 –

+1

(/ [^ A-ZA -Z]/g,'').length' –

回答

3

首先,您嘗試在節點上使用.match()方法;只有字符串具有該方法。其次,我要做的是從節點獲取文本數據,替換所有非字母字符,然後用所有字符串上可用的.length屬性對它們進行計數。

function countLetters() { 
    return ntext.data.replace(/[^a-zA-Z]/g, '').length; 
} 

Fixed Fiddle

+0

可以使用'/ [^ a-z]/gi'嗎? – Pavlo

+0

是的。我只是發現前者更加明確,但兩者都是一樣的。 –