Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby等价于PHP';ucs first()函数_Ruby On Rails_Ruby_String - Fatal编程技术网

Ruby on rails Ruby等价于PHP';ucs first()函数

Ruby on rails Ruby等价于PHP';ucs first()函数,ruby-on-rails,ruby,string,Ruby On Rails,Ruby,String,Ruby中(使用Rails,如果相关的话)将字符串的第一个字母大写的最佳方法是什么 请注意,String#capitalize不是我想要的,因为除了将字符串的第一个字母大写外,此函数还使所有其他字符都小写(我不想让它们保持不变): 看看这个 没有内置的函数。您需要拆分字母并重新连接或尝试Rails的字符串标题化,看看它是否符合您的要求。您可以使用“sub”来获取所需内容(注意:我没有使用多字节字符串测试过这一点) (当然,如果您愿意,您可以使用monkeypatch String将其添加为方法

Ruby中(使用Rails,如果相关的话)将字符串的第一个字母大写的最佳方法是什么

请注意,
String#capitalize
不是我想要的,因为除了将字符串的第一个字母大写外,此函数还使所有其他字符都小写(我不想让它们保持不变):

看看这个

没有内置的函数。您需要拆分字母并重新连接或尝试Rails的字符串标题化,看看它是否符合您的要求。

您可以使用“sub”来获取所需内容(注意:我没有使用多字节字符串测试过这一点)


(当然,如果您愿意,您可以使用monkeypatch String将其添加为方法)

在Rails中,您有
String#titleize
方法:


“测试字符串标题化方法”。标题化#=>“测试字符串标题化方法”

大写第一个字符,并将其保存回字符串中

s = "a A"
s[0] = s[0,1].upcase
p s # => "A A"
或者


如果不想修改原始字符串,可以通过以下方式进行修改:

class String
  def ucfirst
    str = self.clone
    str[0] = str[0,1].upcase
    str
  end
end

如果您正在寻找与PHPs
ucfirst()类似的函数,请尝试

"a A".gsub(/(\w+)/) {|s| s.capitalize}
将导致“
A A

将导致“
一种新方法”

您可以使用以下命令扩展字符串类:

class String
  def ucfirst
    self.gsub(/(\w+)/) { |s| s.capitalize }
  end

  def ucfirst!
    self.gsub!(/(\w+)/) { |s| s.capitalize }
  end
end

我提出了下面的解决方案,通过空格工作

'  ucfirstThis'.sub(/\w/, &:capitalize)
# => "UcfirstThis"
从rails 5开始:

"a A".upcase_first
=> "A A"

一个衬里不依赖于ActiveSupport。但不确定它是否完全防弹:

"my great uncle and grand-ma".gsub(/(\A\w|\s\w)/) { |m| m.upcase }
# My Great Uncle And Grand-ma

请注意,
titleize
会进行其他更改,例如在单词中插入空格。
class String
  def ucfirst
    self.gsub(/(\w+)/) { |s| s.capitalize }
  end

  def ucfirst!
    self.gsub!(/(\w+)/) { |s| s.capitalize }
  end
end
'  ucfirstThis'.sub(/\w/, &:capitalize)
# => "UcfirstThis"
"a A".upcase_first
=> "A A"
"my great uncle and grand-ma".gsub(/(\A\w|\s\w)/) { |m| m.upcase }
# My Great Uncle And Grand-ma