the sign in the exponential part can be ommitted according to json.org.
So 1e10 is allowed. I doubt if the regex suggestion will handle that properly.
Guess you need an extra ? after ([-]|[+])