我有这段代码:
<?php echo $price; ?>
给了我这个结果:
1,500.99
此代码就像一个魅力,用于标注点后的数字:
$parts = explode('.', $price);
echo "$parts[0].<sup>$parts[1]</sup>";
但是如果我有这样的价格:1,500.99€它也标有€符号。这可以停止吗?如果它不是一个数字,或者上标后只有2个字符,那么不要上标吗?
它不需要是相同的代码,如果你有别的东西,我会试一试。
由于
答案 0 :(得分:1)
正则表达式可能更灵活一些:
<?php
$price = "1,500.99";
$pattern = '/([\d,]+\.)(\d+)(.*)$/';
// ...or '/([\d\.]+,)(\d+)(.*)$/' if your currencies are 1.500,00
$formatted = preg_replace($pattern, '$1<sup>$2</sup>$3', $price);
// gives "1,500<sup>.99</sup>"
$price = "1,500.99€";
$formatted = preg_replace($pattern, '$1<sup>$2</sup>$3', $price);
// gives "1,500<sup>.99</sup>€"