Posted by windandwaves on 10/13/24 11:36
Hi Folk
I wrote the following function as a "cleaner" for a currency input:
function is_currency($v) {
//returns a string with only the numbers for a currency format
$v = str_replace("$", "", $v);
$regex = '/(?:([0-9]+)|.)/';
if(preg_match($regex, trim($v) ) ){
$v = $v + 0.00001;
if (is_float($v)) {
return round($v, 2);
}
}
else {
return 0;
}
}
I want users to be able to put in things like:
NZ$12.34
$12.34
12
12.3456
1,002.23
and it should always translate into a number with two decimals (e.g. 12.34
or 12.00)
I am sure that this is probably the clumsiest way ever to do this. How can
I improve this function?
TIA
Nicolaas
PS despite numerous efforts I am still super weak on regular expressions. I
can only copy them and not write them myself.
[Back to original message]
|