2011-08-16 49 views
0

我已經創建了一個可擴展的textarea。計算內容的字符數並計算和修改textarea的行號。這工作得很好。但是,當用戶手動輸入單個字符時,不會添加任何行。計數值的發生次數,如@@?

我想改變它,以便用戶可以在新段落之前添加@@來創建自己的段落。這將被保存到數據庫。當我從數據庫輸出它時,我會用<br /><br />替換@@。

下面是我使用來計算行數的函數:

function getRowCount(NumCharacters) { 
    var NewRows = NumCharacters/40; 
    NewRows = parseInt(NewRows) + 1; 
    return NewRows; 
} 

每行有40個字符。每次用戶再次輸入40個字符時,都會添加另一行。

在我的JavaScript中,當用戶點擊@@時,我需要在行數上多加一行。

如何使用JavaScript搜索並計算找到@@序列的次數?並每次添加一行?

++++++++++++++++++++++++++++++++++++++++++

我已經嘗試了下面的一些答案。其中兩個非常好,可讀性強,操作簡單。但是,兩者都會產生一個我無法解決的錯誤。 Firebug告訴我:

ThisText.match(/@@/g) is null 

是的,我知道它是空的。沒有找到@@。

這將引發一個錯誤:

var MyString = "Would you like to help me today?"; 
ExtraRows = MyString.match(/@@/g).length + 1; 

這不會引發錯誤:

var MyString = "Would you like to @@help me today?"; 
ExtraRows = MyString.match(/@@/g).length + 1; 

那麼,我該如何擺脫,似乎在沒有發生錯誤的@@要找到?

+1

你有沒有嘗試在'textarea'上設置'wrap = hard'?這將導致'textarea'向服務器發送換行符。 '