in reply to Re: Re: Re: Validating Numbers in CGI Script?
in thread Validating Numbers in CGI Script?
Well, let's take this guy apart. We know how the leading -? will be treated, so let's leave it out. Then we get two paths that this regex can follow:
(?=\d)\d*\.?\d+$
and
(?=\.\d)\d*\.?\d+$
If the regex takes the first path, we're guaranteed to get at least one digit. This digit must be present in the \d* or \d+ if it goes to the \d*, then we're guaranteed to match the equivalent of
\d+\.?\d+
which will match anything that's comprised of just numbers, and any two numbers with a single period between them.
if it's in the \d+, then we know that there are no periods in the string, since we must have passed through the optional \d* and \.?
so this first path will always match a number number with no fractional portion, or a fractional number with a mandatory leading whole number portion
Now in the other path: (?=\.\d)\d*\.?\d+$
If this regex matches, we're guaranteed to have a period then a number. Since this is a lookahead, that means we've seen past the following \d*, since we can't possibly have picked up a number prior to the period.
So the actual regex in this path is \.\d+, which clearly just matches a number with no preceding 0.
So in any case, I don't think it will match anything other than numbers, as japhy suggests.
|
|---|