|  | Posted by windandwaves on 06/16/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.
  Navigation: [Reply to this message] |