1

我有一个包含许多分数的字符串,如 1/2、1/4 等。我想用它们的 Unicode 等价物替换它们。

我意识到我可以把它们捡起来

/\s(\d+)\/(\d+)\s/

我将如何用它们的 Unicode 等价物替换它们?我可能可以将数字包装起来span并用 CSS 做类似的事情,但我想知道是否有一种简单的方法来转换它们。

我需要将正则表达式 1:1 映射到 Unicode 字符吗?

4

2 回答 2

6

以这种方式显示它会更好。不是每个人都可能拥有您需要的那些 Unicode 字体。

echo preg_replace ( '/\b(\d+)\/(\d+)\b/', '<sup>$1</sup>/<sub>$2</sub>', $fraction );

或者:

echo preg_replace ( '/\b(\d+)\/(\d+)\b/', '<sup>$1</sup>&#8260;<sub>$2</sub>', $fraction );

小数斜线&#8260;看起来像 ⁄。

如果您需要显示大分数,这仍然是最佳解决方案:25675798

于 2010-09-22T06:14:01.733 回答
4

鉴于只有少数几个,您可以像这样创建一个映射:

$fractions = array(
    '1/4' => '¼', '1/3' => '⅓',
    '3/8' => '⅜', ...
  );

我想说这可能是最简单的方法......请记住,许多人不会安装可以显示所有字体的字体。

于 2010-09-22T06:00:01.840 回答