1

1/2、1/4 などの多くの分数を含む文字列があります。それらを Unicode に相当するものに置き換えたいと考えています。

私はそれらを拾うことができることに気づきました

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

それらをUnicodeの同等のものに置き換えるにはどうすればよいですか? 数値をラップしてspan、CSS で同様のことを行うこともできますが、それらを簡単に変換する方法があるかどうか疑問に思っていました。

正規表現と Unicode 文字を 1:1 でマッピングする必要がありますか?

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;は⁄のようになります。

これは、大きな端数を表示する必要がある場合でも最適なソリューションです:2567⁄5798

于 2010-09-22T06:14:01.733 に答える
4

それらの数が少ないことを考えると、次のようにマッピングを作成できます。

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

それがおそらく最も簡単な方法だと思います...とにかく、すべてを表示できるフォントをインストールしていない人が多いことを覚えておいてください。

于 2010-09-22T06:00:01.840 に答える