determine_if_a_string_is_numeric.sf 401 B

12345678910111213141516
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Determine_if_a_string_is_numeric
  4. #
  5. func is_numeric(s) {
  6. (s ~~ /^[+-]?+(?=\.?[0-9])[0-9_]*+(?:\.[0-9_]++)?(?:[Ee](?:[+-]?+[0-9_]+))?\z/) ||
  7. (s ~~ /^0(?:b[10_]*|x[0-9A-Fa-f_]*|[0-9_]+\b)\z/);
  8. };
  9. var strings = %w(0 0.0 -123 abc 0x10 0xABC 123a -123e3 0.1E-5 50e);
  10. strings.each { |str|
  11. say ("%9s => %s" % (str, is_numeric(str)));
  12. };