1

我有这个代码:

<?php echo $price; ?>

这给了我这个结果:

1,500.99

这段代码就像一个魅力,可以在点后面的数字上标:

$parts = explode('.', $price); 
echo "$parts[0].<sup>$parts[1]</sup>";

但如果我的价格是这样的:1,500.99€,它也会在€符号上标上标。这可以阻止吗?如果不是数字,不要上标,或者在点后仅上标 2 个字符?

它不需要是相同的代码,如果你有别的东西,我会试一试。

谢谢

4

1 回答 1

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>€"
于 2012-04-16T18:03:19.477 回答