2016-05-15 13 views
2

Ich versuche, alle Zeilen in post.comment, die mit $ mit regex
<%= highlight(post.comment, /^\$.*$/) %>Mit Regex mit Highlight

Jedoch gibt diese den Fehler no implicit conversion of Regexp into String

starten markieren Wie kann ich dieses Format, jede Zeichenfolge Start übereinstimmen mit $?

$highlight test 
test 
$highlight test 
+0

Welche Version von Rails verwenden Sie? –

+0

@AnthonyE 4.1.10 – aidiah

Antwort

1

Ihr Code funktioniert für mich auf Rails 4.2 Ruby 2.2.5, unter der Annahme, dass post.comment eine Zeichenfolge ist.

Als Alternative können Sie versuchen, auch die folgenden mit sub:

raw(post.comment.gsub(/^\$.*$/) { |item| "<mark>#{item}</mark>" }) 
+0

Wie auch immer, ich kann eine div-Klasse anstelle von mark verwenden? Auch dies scheint neue Zeilen zu brechen, und wird nicht die nächste Zeile markieren, die auch eine $ – aidiah

+0

Die '/^\$.*$/' Regex sollte Zeilenumbrüche richtig behandeln. Und ja, Sie können eine Div-Klasse verwenden, indem Sie den ersetzten Text ändern. –

+0

$ highlight test/n test/n $ highlight test (/ n für newline) erscheint als https://i.imgur.com/Xmacnbw.png – aidiah