我在mysql数据库中有一个“price”字段,其中包含阿拉伯语或波斯语数字的产品价格。
电话号码示例:1234567890 // 1234567890
我无法弄清楚如何对其进行格式化,以便以用户友好的方式对其进行格式化。 我的意思是,按数千或类似的东西分组。 这将是理想的: 1 234 567 890
php中的number_format是我在拉丁数字上使用的。
是否有任何我不知道的功能,以实现这一目标?
如果没有,我们很感激如何制作一个想法。
由于
答案 0 :(得分:0)
您可以使用这样的正则表达式:
([۱۲۳۴۵۶۷۸۹۰])(?=(?:[۱۲۳۴۵۶۷۸۹۰]{3})+$)
在\1,
字符串上使用۱۲۳۴۵۶۷۸۹۰
进行搜索和替换会为您۱,۲۳۴,۵۶۷,۸۹۰
(使用,
而不是空格,因为SO会将其删除。但是在替换中使用空格相反也会起作用。)
我不得不同意评论中的建议,但是使用可用的数字类型存储数据并在输入/输出上转换它们。
答案 1 :(得分:0)
如果您可以在数据库中存储数字而不是字符串(或转换为ascii数字),则可以使用php5-intl函数完成使用组分隔符的标准货币格式。您只需要ISO区域设置和货币代码:
$nf = new \NumberFormatter('fa_IR', \NumberFormatter::CURRENCY);
echo $nf->formatCurrency(1234.1234, 'IRR');
1,234﷼
否则,@ rvalvik的回答很好。