简体   繁体   中英

NumberFormatter generate unbreakable space

I try to put a formated currency input from php as value of an input,

$format = numfmt_create( 'fr_FR', NumberFormatter::CURRENCY);
$datavalue = numfmt_format_currency($format, $data['value'], 'EUR');

It works, but the result contain unbreakable space caracter like so

value='10,0 €'

That lead to mess up with my design, I didn't found how to remove it yet

Already tried :

str_replace(' ', " ", $datavalue);

Run the result through html_entity_decode() then perform your str_replace(' ', '', $datavalue);

That class/function prefers an integer be passed to it, so you need to clean up your data before you ever get to the function.

You can use numberFormatter

example:

$amount = '12345.67';
$formatter = new NumberFormatter('fr_FR',  NumberFormatter::CURRENCY);
echo 'format: ', $formatter->formatCurrency($amount, 'EUR'), PHP_EOL;
   //output 
     12 345,67 € 

edit: other method is use this MoneyFormat example

$number = 1234.56;

// let's print the international format for the en_US locale
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM