Vous pouvez utiliser le String de la classe =~ méthode avec les regex /\d/ comme argument.
Voici un exemple:
s ='abc123'if s =~/\d/# Calling String's =~ method.
puts "The String #{s} has a number in it."else
puts "The String #{s} does not have a number in it."end
c'est probablement moins efficace, si vous ignorez les frais généraux de la compilation de l'expression régulière (ce qui est juste si le test est fait dans une grande boucle ou de la chaîne de contrôle est très long). Pour les maladies dégénératives cas, votre solution doit traverser l'ensemble de la chaîne alors qu'une bonne expression régulière arrêter dès qu'un chiffre est trouvé. tandis que celui-ci ne peut pas être une efficacité maximale, il est très lisible, qui peuvent être mieux pour certaines situations.
Plutôt que d'utiliser quelque chose comme "s =~ /\d/", je vais au plus court s[/\d/] qui renvoie à néant pour une miss (AKA faux dans un test conditionnel) ou de l'indice de la hit (AKA vrai dans un test conditionnel). Si vous avez besoin de la valeur réelle utilisez [s/(\d)/, 1]
Il devrait tout de même et est en grande partie un programmeur choix.
Vous pouvez utiliser le
String
de la classe=~
méthode avec les regex/\d/
comme argument.Voici un exemple:
OriginalL'auteur Ethan
Sinon, sans l'aide d'une regex:
tandis que celui-ci ne peut pas être une efficacité maximale, il est très lisible, qui peuvent être mieux pour certaines situations.
OriginalL'auteur glenn jackman
OriginalL'auteur Jacob Mattison
Plutôt que d'utiliser quelque chose comme "s =~ /\d/", je vais au plus court s[/\d/] qui renvoie à néant pour une miss (AKA faux dans un test conditionnel) ou de l'indice de la hit (AKA vrai dans un test conditionnel). Si vous avez besoin de la valeur réelle utilisez [s/(\d)/, 1]
Il devrait tout de même et est en grande partie un programmeur choix.
OriginalL'auteur the Tin Man
Peut être une fonction autonome -
ou ... de l'ajouter à la classe String rend encore plus pratique -
OriginalL'auteur Shreyas