If you want to check for real numbers, try something like the demo script 
below.  '-12.3' shows true while '--12.3' shows false.

HTH

Gary

#!/usr/bin/perl 

my $fred='-12.3';

$fred+=1;
$fred-=1;
$resp= ($fred) ? "$fred is numeric\n" : "$fred is not numeric\n";
print $resp;


On Thursday 27 Feb 2003 12:47 am, Casey West wrote:
> It was Wednesday, February 26, 2003 when T. Murlidharan Nair took the soap 
box, saying:
> : I have a cgi that  need to accept only  numeric values. ie +ve or -ve
> : real numbers.
> : Is there a quick and easy way to check this. I was trying using a reg exp
> : if(/^[-0-9][\.0-9]*/) {
> : do something
> : }
> :
> : but this breaks when the number is say --75.4  It still accepts if it
> : has two - signs.
>
> Here's a nice trick.  Use the int() function.  It's documented in
> perlfunc, a short to the documentation is 'perldoc -f int'.
>
> When passed a string, int() will return 0.  When passed a number, it
> will return the integer version of that number.  Armed with this
> knowledge, it's fair to assume that when passed an integer, the
> following expression will be true:
>
>   $data == int( $data );
>
> It will return false if a fraction or a string is passed, in '$data'.
>
> So, try this:
>
>   if ( $_ == int( $_ ) ) {
>     # do something...
>   }
>
> Enjoy!
>
>   Casey West

-- 
Gary Stainburn
 
This email does not contain private or confidential material as it
may be snooped on by interested government parties for unknown
and undisclosed purposes - Regulation of Investigatory Powers Act, 2000     


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to