como verificar uma string é valida em ruby? Uma string válida incluirá apenas um caractere ou um número digital OU ambos. Isso é o que eu tentei:
str = "abc."
str[3].is_a? Numeric
str[3].is_a? String
"" aqui também é string (já que ruby não tem char), mas na minha definição de string válida, "abc" é inválido. Existe algum método em ruby para verificar isLetter e isDigital como java faz?
Respostas:
2 para resposta № 1Você está no caminho certo. Você só vai querer usar uma expressão regular para descobrir quais caracteres aceitar / rejeitar.
algo como isto aceitaria todos os caracteres alfabéticos minúsculos e maiúsculos.
str = "abc."
str[/([a-zA-Z]+)/]
Isso funciona porque a expressão regular ([a-zA-Z]+)
corresponde a um grupo ()
de um ou mais +
caracteres com minúsculas a-z
ou maiúsculas A-Z
personagens.
Você pode usar http://rubular.com/ para tentar diferentes expressões regulares.
1 para resposta № 2
Você está procurando por uma expressão regular?
>> "abc." =~ /[a-zA-Z]/
=> 0
>> "abc." =~ /[0-9]/
=> nil
0 para resposta № 3
Regex: (Observe se sublinhados são caracteres aceitáveis /W/
é utilizável).
def valid?(str)
(str =~ /[^a-zA-Z0-9]/).nil?
end
p valid? "123" # => true
p valid? "123$" # => false
Sem Regex:
def valid?(str)
str.count("a-zA-Z0-9") == str.size
end
p valid? "123" # => true
p valid? "123$" # => false