我正在用 RoR 构建一个网络应用程序。我该怎么做:
<b>this is my text</b>
并将第一个单词大写,所以看起来像这样
<b>This is my text</b>
我尝试过使用 capitalize 方法,但它不适用于 HTML。有没有办法做到这一点,最好不必安装任何额外的宝石?
(对于它的价值,字符串只包含<b>
标签和文本。)
我正在用 RoR 构建一个网络应用程序。我该怎么做:
<b>this is my text</b>
并将第一个单词大写,所以看起来像这样
<b>This is my text</b>
我尝试过使用 capitalize 方法,但它不适用于 HTML。有没有办法做到这一点,最好不必安装任何额外的宝石?
(对于它的价值,字符串只包含<b>
标签和文本。)
可能不是最优雅的解决方案,但应该可以完成这项工作:
yourstring[3,1] = yourstring[3,1].capitalize
如果开头只有 <b>。您可能希望使用正则表达式来查找第一个字符。
最简单的方法实际上是使用 CSStext-transform
属性。假设你的字符串总是小写:
<b style="text-transform: capitalize;">this is my text</b>
你可以做这样的事情,如果你在一个字符串变量中有多个粗体元素,可能需要扩展。
t = "<b>this is my text</b>"
t.gsub!(/(<b>)(.*)(<\/b>)/, "#{$1}#{($2).capitalize}#{$3}")
使用这种方法你有更多的灵活性。如果您的标签发生变化,或者有时您没有标签,您可以轻松修改正则表达式以进行补偿。值得一提的是,这也可以,但更难扩展。
t =~ /(<b>)(.*)(<\/b>)/
t = "#{$1}#{($2).capitalize}#{$3}"