1

我正在用 RoR 构建一个网络应用程序。我该怎么做:

<b>this is my text</b>

并将第一个单词大写,所以看起来像这样

<b>This is my text</b>

我尝试过使用 capitalize 方法,但它不适用于 HTML。有没有办法做到这一点,最好不必安装任何额外的宝石?

(对于它的价值,字符串只包含<b>标签和文本。)

4

3 回答 3

2

可能不是最优雅的解决方案,但应该可以完成这项工作:

yourstring[3,1] = yourstring[3,1].capitalize

如果开头只有 <b>。您可能希望使用正则表达式来查找第一个字符。

于 2012-07-30T19:05:21.307 回答
1

最简单的方法实际上是使用 CSStext-transform属性。假设你的字符串总是小写:

<b style="text-transform: capitalize;">this is my text</b>
于 2012-07-31T18:24:26.163 回答
0

你可以做这样的事情,如果你在一个字符串变量中有多个粗体元素,可能需要扩展。

t = "<b>this is my text</b>"

t.gsub!(/(<b>)(.*)(<\/b>)/, "#{$1}#{($2).capitalize}#{$3}")

使用这种方法你有更多的灵活性。如果您的标签发生变化,或者有时您没有标签,您可以轻松修改正则表达式以进行补偿。值得一提的是,这也可以,但更难扩展。

t =~ /(<b>)(.*)(<\/b>)/
t =  "#{$1}#{($2).capitalize}#{$3}"
于 2012-07-31T18:39:22.890 回答