类名到类名

发布于 2024-07-26 17:18:13 字数 126 浏览 4 评论 0原文

我确信这对于极客来说是一件简单的事情:

假设我有一个字符串“ThisIsMyString”,我想使用 Ruby 将其格式化为“this_is_my_string”。

我怎么做?

马特

I'm sure this is an easy one for you geeks:

Say I have a String "ThisIsMyString" and I want to format it like "this_is_my_string" using Ruby.

How do I do that?

Matt

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

懒猫 2024-08-02 17:18:13

如果您有权访问 ActiveSupport(如在 Rails 中,但可在外部使用),您可以使用 Inflector 模块

"ClassName".underscore # => class_name

If you have access to ActiveSupport (as in Rails, but usable externally) you can use the underscore method in the Inflector module.

"ClassName".underscore # => class_name
要走就滚别墨迹 2024-08-02 17:18:13

字符串类
def 下划线
(gsub(/[AZ]) { |p| "_" + p.downcase })[1..-1]
结尾
结束

“MyTestCase”.to_under_score => “my_test_case”

来自 http://www.ruby-forum.com/topic/113697# 265696

class String
def to_under_score
(gsub(/[A-Z]) { |p| "_" + p.downcase })[1..-1]
end
end

"MyTestCase".to_under_score => "my_test_case"

From http://www.ruby-forum.com/topic/113697#265696

遗心遗梦遗幸福 2024-08-02 17:18:13

Ruby Facets 有一个函数可以做到这一点:String#underscore。 这是它的来源

  def underscore
    gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    tr("-", "_").
    downcase
  end

Ruby Facets has a function to do this: String#underscore. Here's the source of it:

  def underscore
    gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    tr("-", "_").
    downcase
  end
最冷一天 2024-08-02 17:18:13

如果您可以从 Rails 项目访问 ActiveSupport,那么就很简单

require 'activesupport'
"ThisIsMyString".underscore

If you have access to ActiveSupport from the Rails project, it's as simple as

require 'activesupport'
"ThisIsMyString".underscore
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文