如何禁用大写输入?

时间:2017-01-12 07:28:32

标签: ruby

如何使用

防止用户输入大写字母
user = get.chomp

如果我不想使用

user.downcase! 

我希望用户不能输入大写字母

2 个答案:

答案 0 :(得分:1)

是的,您可以通过以下方式执行此操作,getch一次只能使用一个字符。 一个caviat:你需要用两个返回来结束字符串。 请记住,这只是控制台,如果您想要更多或更好的控制使用简单的GUI框架,例如Shoes使用Web界面。

require 'io/console'

input, user = "", ""
while input != "\n"
  input = STDIN.getch
  if ('a'..'z').include? input
    print input
    user += input 
  end
end
puts "\nuser = #{user}"

答案 1 :(得分:0)

如果你想验证它是完全小写的那么简单的方法是:

user = gets.chomp

if (user == user.downcase)
  # All downcase
end

您还可以使用正则表达式:

user = gets.chomp

if (user.match(/\A[a-z]\z/)
  # All downcase
end

这样可以自定义允许使用哪些字符,例如_是否可以接受。

你不能阻止他们输入大写字母,除非你用Curses之类的东西做很多工作来处理个别击键并控制回声输出。这是一大堆工作,我不推荐它。