用于确定字符串是否是有效变量名称的方法

时间:2011-07-04 04:01:34

标签: ruby

我是否可以调用一个方法,如果字符串是有效的变量名则返回true,否则返回false?

我注意到instance_variable_get在内部使用了rb_is_instance_id,但是我找不到那个公开的方法来调用。

2 个答案:

答案 0 :(得分:2)

我不确定你在说什么类型的变量。此函数将告诉您字符串是否是有效的实例变量名称。 Ruby可能对不同类型的变量有不同的规则。

def valid_variable_name?(var_name)
  Object.new.instance_variable_set ('@'+var_name).to_sym, nil
  true
rescue NameError
  false
end


puts valid_variable_name?('banana') # => true
puts valid_variable_name?("\x00")   # => false
puts valid_variable_name?('#')      # => false
puts valid_variable_name?(':')      # => false
puts valid_variable_name?('@')      # => false
puts valid_variable_name?('/')      # => false

答案 1 :(得分:1)

!!(defined?(string).to_s =~ /variable/)