如何检查字符串是否包含符号?

时间:2018-04-01 14:40:31

标签: ruby-on-rails ruby

如何检查字符串是否包含符号?这让我感到困惑:

class Beba 
  def initialize
    while true
      puts "Qfar emri deshironi ti vnoni bebes?"
      @@emri = gets.chomp.capitalize

      if @@emri.scan(/\d+/).empty? && @@emri.scan(/\/./).empty?
        puts "Ti e emertove beben me emrin: #{@@emri}"
        break 
      else
        puts "Emri nuk mund te jete me numra/simbole, provoni perseri."
      end
    end
  end 
end

正如您所见,在if@@emri.scan(/\d+/).empty? && @@emri.scan(/\/./).empty?,我不知道该怎么做,我可以使用哪种方法@@emri.scan(/\\.\).empty?检查我的字符串是否包含任何符号?

3 个答案:

答案 0 :(得分:2)

对于您要求的特定字符,您可以使用:

@@emri.scan(/[!@#$%^&*()_+{}\[\]:;'"\/\\?><.,]/).empty?

如果没有找到特殊字符,将返回true

答案 1 :(得分:2)

str !~ /[!@#$%^&*()_+{}\[\]:;'"\/\\?><.,]/

返回true当且仅当字符串str不包含正则表达式字符类中的任何字符时(否则返回false)。

答案 2 :(得分:1)

它似乎在寻找特殊字符。 使用像

这样的东西
"Hel@lo".index( /[^[:alnum:]]/ )

如果没有特殊的角色,它将返回nil。

[:alnum:]包括所有0-9,a-z,A-Z。

如果您想要特定的角色

将所有字符放在字符串中像

一样创建正则表达式
characters = "!@#$%^&*()_+{}[]:;'\"\/?><.,"
regex = /[#{characters.gsub(/./){|char| "\\#{char}"}}]/

&安培;比使用这个正则表达式来查看它们是否存在于像

这样的字符串中
if some_string =~ regex