Hi,

> I would like to accept monetary values like
> 
> $234.00
> $2678
> 
> but not values with letters like
> 
> $333.oo
> 
> This script below almost works, but I can't get it to catch 
> the $40o.89

How about

# assume ,xx is really supposed to be .xx
$payment =~ s/,(\d{2})$/.$1/;

# throw out any remaining comma
$payment =~ s/,//g;

# it's got to be a dollar sign followed by a number,
# possibly by a decimal dot and two more digits.

if( $payment =~ m/^(\$\d+(\.\d{2})?)$/ ){
  print "$1 seems to be a valid amount\n";
}

HTH,
Thomas

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to