在我的text_area/text_field
我想让用户选择在某些字词周围添加粗体。
它的工作方式如下:里面有一个**粗体**字。
我使用.gsub('**', '<b>').html_safe
它几乎可以工作,但问题是输出不完全正确。
预期输出:内部有一个粗体字样。
我得到的内容:内部有一个粗体字。
HTML:
<p>This has a <b>bold<b> word inside</b></b></p>
如何只使用** <b> </b>
答案 0 :(得分:2)
您可以捕获匹配并将其传递给以下块
string = "This has a **bold** word inside"
string.gsub(/\*\*(\w+)\*\*/) {"<b>#{$1}</b>"}
#=> "This has a <b>bold</b> word inside"
它也适用于后续比赛
string = "This has a **bold** word inside **bold**"
#=> "This has a <b>bold</b> word inside <b>bold</b>"
修改强>
如果你想捕获空格,还要将\s
添加到正则表达式
string = "This has a ** bold with spaces ** word inside **bold**"
string.gsub(/\*\*([\w\s]+)\*\*/) { "<b>#{$1}</b>" }
#=> "This has a <b> bold with spaces </b> word inside <b>bold</b>"