我有一个包含许多分数的字符串,如1/2,1 / 4等。我想用它们的Unicode等价替换它们。
我意识到我可以用
来接他们/\s(\d+)\/(\d+)\s/
我如何用它们的Unicode等价替换它们?我可以将数字包装在span
中并用CSS做类似的事情,但我想知道是否有一种简单的方法来转换它们。
我是否需要将正则表达式的1:1映射到Unicode字符?
答案 0 :(得分: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>⁄<sub>$2</sub>', $fraction );
小数斜杠⁄
看起来像/。
如果您需要显示大部分,这仍然是最佳解决方案: 2567 / 5798
答案 1 :(得分:4)
鉴于其中只有少数,你可以像这样创建一个映射:
$fractions = array(
'1/4' => '¼', '1/3' => '⅓',
'3/8' => '⅜', ...
);
我认为这可能是最简单的方法......请记住,许多人不会安装可以显示所有这些字体的字体。