Volevo convalidare la "numericità" di una stringa (non è un attributo in un modello di record attivo). Ho solo bisogno che sia una base valida 10, stringa intera positiva. Sto facendo questo:L'implementazione di Ruby è_numerica? per le stringhe, sono necessarie alternative migliori
class String
def numeric?
# Check if every character is a digit
!!self.match(/\A[0-9]+\Z/)
end
end
class String
def numeric?
# Check is there is *any* non-numeric character
!self.match(/[^0-9]/)
end
end
Quale di questi è un'alternativa più plausibile? O, c'è qualche altra migliore implementazione?
Per curiosità, perché il moltiplicatore '{1,1}'? Per impostazione predefinita, tutte le classi e i letterali dei caratteri vengono confrontati esattamente una volta, a meno che non sia diversamente specificato. Questo è ridondante. –
Povero me! Lo rimuoverò subito. – Swanand
Domanda correlata: http://stackoverflow.com/questions/694176/retrieve-number-from-the-string-pattern-using-regular-expression –