From 285c99e3c48d7d678e699a1baf3f70830889f21f Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Sat, 16 Jun 2018 16:08:53 +0300 Subject: [PATCH] Issue #5: properly validate `001` number --- validate.go | 8 ++++---- validate_test.go | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/validate.go b/validate.go index beadd05..16a10d8 100644 --- a/validate.go +++ b/validate.go @@ -249,15 +249,15 @@ func validateNumber(s string) (string, error) { } i++ } - if i == 0 { + if i <= 0 { return s, fmt.Errorf("expecting 0..9 digit, got %c", s[0]) } - if i >= len(s) { - return "", nil - } if s[0] == '0' && i != 1 { return s, fmt.Errorf("unexpected number starting from 0") } + if i >= len(s) { + return "", nil + } if s[i] == '.' { // Validate fractional part s = s[i+1:] diff --git a/validate_test.go b/validate_test.go index 8001908..998e74a 100644 --- a/validate_test.go +++ b/validate_test.go @@ -99,6 +99,7 @@ func TestValidate(t *testing.T) { "123.", "123.345", "001 ", + "001", // object "{}",