首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby on Rails。将**Bold**替换为<b>Bold</b>改为gsub()

Ruby on Rails。将**Bold**替换为<b>Bold</b>改为gsub()
EN

Stack Overflow用户
提问于 2016-08-05 13:15:56
回答 1查看 1.3K关注 0票数 1

在我的text_area/text_field中,我想让用户在一些单词周围添加粗体。它的工作原理是:里面有一个*粗体*字。

我使用过.gsub('**', '<b>').html_safe,它几乎可以工作,但问题是输出不完全正确。

预期输出:这里面有一个粗体的单词。

我得到了什么:这里面有一个粗体字.

html:

代码语言:javascript
复制
<p>This has a <b>bold<b> word inside</b></b></p>

如何才能只生成被** <b> </b>包围的单词?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-05 14:01:34

您可以捕获匹配并将其传递给以下块

代码语言:javascript
复制
string = "This has a **bold** word inside"

string.gsub(/\*\*(\w+)\*\*/) {"<b>#{$1}</b>"}

#=> "This has a <b>bold</b> word inside"

它也适用于随后的比赛。

代码语言:javascript
复制
string = "This has a **bold** word inside **bold**"

#=> "This has a <b>bold</b> word inside <b>bold</b>"

编辑

如果您也想捕获空格,那么将\s添加到regex中

代码语言:javascript
复制
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>"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38790260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档