2

私のフォームには、ユーザーがデータを入力し、「Enter」を押して改行を入れてデータの入力を続けることができるテキストエリアフィールドがあります。

データベースからデータを取得するときは、すべての改行を削除し、そのデータを JavaScript 配列に格納する必要があります。

以下の例では、メモ (複数の改行を含む<br/>) を取得し、「exp_from_db」という配列に格納しています。

exp_from_db[1]= '<%= note.NOTE_VALUE %>';

<%= note.NOTE_VALUE %>私の質問は、javascript 配列に格納する前に、これらの改行を削除する方法です。

ご協力いただきありがとうございます。

4

4 に答える 4

4

文字列<br/>とそのバリエーション( <br><br /><br >)だけを削除する場合gsubは、1 つの方法です。

note.NOTE_VALUE.gsub(/<br\s*\/?>/, '')

これを常にNOTE_VALUE削除したい場合は、ActiveRecord クラスの getter を変更できます。

def NOTE_VALUE
  read_attribute("NOTE_VALUE").gsub(/<br(\s*\/)?>/, '')
end
于 2012-08-31T15:06:02.623 に答える
2
note.NOTE_VALUE.gsub(/\<br\s*\/?\>/, "")

すべての出現箇所を削除します: <br /><br/>または<br>

irb で次の例を試してください。

puts "text<br /> some text <br>another text<br/>".gsub(/\<br\s*\/?\>/, "")
于 2012-08-31T15:14:25.463 に答える
1

http://www.ruby-doc.org/core-1.9.3/String.html#method-i-gsubをご覧ください

次のようなことができます。

parsed_string = exp_from_db[1].gsub(/<br\/>/, '')

これにより、br タグのすべてのインスタンスが空白の文字列に置き換えられ、削除されます。

于 2012-08-31T15:06:34.647 に答える
1

Rails を使用する場合、次の 2 つの選択肢があります。

  • DB 値に他の HTML タグが含まれていない (または含まれているが、それらが消去されても構わない)ことが確実strip_tags(note.NOTE_VALUE)な場合は、単純にこれを行うことができます:オカレンスだけでなく、文字列内のタグ<br/>

  • または、単に gsub を使用してこれらを取り除くこともできます: note.NOTE_VALUE.gsub(/<br\s*\/?>/, ''). この正規表現は、タグの自己終了の前に可能なスペース/改行/タブを考慮に入れることに注意してください。br

于 2012-08-31T15:09:48.713 に答える