/ / como verificar uma string é válida em ruby? Uma string válida incluirá apenas um caractere ou um número digital OU ambos - ruby

como verificar uma string é valida em ruby? Uma string válida incluirá apenas um caractere ou um número digital OU ambos - ruby

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 № 1

Você 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-Zpersonagens.

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