2011-08-16 9 views
0

私は拡張可能なテキストエリアを作成しました。コンテンツの文字数がカウントされ、テキストエリアの行番号が計算され、変更されます。これは本当にうまくいく。しかし、ユーザーが手動で1文字の入力をヒットすると、行は追加されません。@@のように値の出現をカウントします。

新しい段落の前に@@を追加して、ユーザーが独自の段落を作成できるように変更したいと考えています。これはデータベースに保存されます。データベースから出力するときは、@@を<br /><br />に置き換えます。

は、ここで私は行番号を計算するために使用しています機能です:

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

行あたり40の文字があります。ユーザーが別の40文字を押すたびに、別の行が追加されます。

私のJavaScriptでは、ユーザーが@@にヒットしたときに、行カウントに余分な行を広告する必要があります。

JavaScriptを使用して@@シーケンスが検索され回数をカウントするにはどうすればよいですか?毎回行を追加しますか?

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

私は以下の答えのいくつかを試しました。そのうち2つは本当にうまく動作し、読みやすくてシンプルです。しかし、どちらも、私はかなりうまくいくことができないというエラーを作り出しています。 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'が改行をサーバに送るようになります。 '