関数索引
halfwidth() 関数は、文字列中の文字を対応する半角文字に変換します。カタカナだけでなく、アルファベット、数字、記号、全角スペース、そして、ハングル文字も変換することができます。
変換したい文字列を指定します。
オプション:文字列中で変換の対象とする文字の種類を指定します。下記の表に定義されている指定文字を複数組み合わせて変換対象を指定します。
指定文字 | 変換対象となる文字 | 備考 |
---|---|---|
A | 全角の大文字と小文字のアルファベットを対応する半角文字に変換します。 | |
N | 全角の数字を対応する半角文字に変換します。 | |
K | 全角のカタカナを対応する半角文字に変換します。 | |
1 | 全角の記号を対応する半角文字に変換します。対象となる記号は下記の32文字です。 !”#$%&’()*+,-./:;<=>?@[\]^_`{|}~ |
全角スペースは変換対象ではありません。<と>を変換した場合結果は < と > になります。 |
2 | 全角の記号を対応する半角文字に変換します。対象となる記号は下記の4文字です。 。「」、 |
|
3 | 全角の記号を対応する半角文字に変換します。対象となる記号は下記の2文字です。 ・ー |
中点と長音記号 |
4 | 全角の記号を対応する半角文字に変換します。対象となる記号は下記の7文字です。 ¢£¬ ̄¦¥₩ |
¥記号を含む通貨記号。テンプレートのエンコーディングが Shift_JIS などの場合、¥以外の文字の変換結果は文字化けが起こる場合があります。さらに、エンコーディングに UTF-8 を指定していても、端末によっては正常に表示できない場合があります。ご注意ください。 |
5 | 全角の記号を対応する半角文字に変換します。対象となる記号は下記の6文字です。 │←↑→↓■ |
変換結果を半角のフォントで描ける端末は少ないかもしれません。無理に変換しない方が無難です。 |
6 | 全角スペース (u3000) を半角スペースに変換します。 | |
H | ハングル文字を対応する半角文字に変換します。 変換対象は u3131 から u3164 にある文字です。 |
ハングル文字の表示に対応した端末が必要です。 |
この引数は省略可能です。省略した場合には "ANK123" が指定されたものとして変換処理が行なわれます。普通の用途であれば、この引数を省略した状態で使うのが丁度良いのではないでしょうか。
「Wow!スゴい!今日はラッキーな出来事が2回もありましたよ。」を halfwidth() 関数で変換して表示してみます。
<body>
......
%halfwidth("「Wow!スゴい!今日はラッキーな出来事が2回もありましたよ。」")%
.....
</body>
この場合の変換結果は
「Wow!スゴい!今日はラッキーな出来事が2回もありましたよ。」
となります。引数のオプションを省略しているので "ANK123" が指定されているものとして変換処理が行なわれています。その結果、文字列中に含まれている全角アルファベット、カタカナ、数字、長音記号が、対応する半角文字に変換されています。
もう一度「Wow!スゴい!今日はラッキーな出来事が2回もありましたよ。」を halfwidth() 関数で変換して表示してみます。今度はオプションのパラメタを指定してみます。
<body>
......
%halfwidth("「Wow!スゴい!今日はラッキーな出来事が2回もありましたよ。」", "K")%
.....
</body>
この場合の変換結果は
「Wow!スゴい!今日はラッキーな出来事が2回もありましたよ。」
となります。変換対象を指定するパラメタに "K" のみを指定したので、変換の対象はカタカナのみとなっています。結果として、数字やアルファベット、記号は変換されずに全角のまま残されています。
もう一度「Wow!スゴい!今日はラッキーな出来事が2回もありましたよ。」を halfwidth() 関数で変換して表示してみます。今度はオプションのパラメタに "AN" を指定してみます。
<body>
......
%halfwidth("「Wow!スゴい!今日はラッキーな出来事が2回もありましたよ。」", "AN")%
.....
</body>
この場合の変換結果は
「Wow!スゴい!今日はラッキーな出来事が2回もありましたよ。」
となります。変換対象を指定するパラメタに "AN" を指定したので、変換の対象は数字とアルファベットとなっています。結果として、カタカナ部分や記号は変換されずに全角のまま残されています。
「要約」という複数行テキスト形式の要素が定義されているとします。そこに入力されている文章を halfwidth() 関数で半角文字化できる部分を処理して表示してみます。
<body>
......
<p>
%halfwidth(要約)%
</p>
.....
</body>
オプションを指定していないので、変換対象は "ANK123" つまり、アルファベット、数字、カタカナ、記号1、記号2、記号3、となります。変換対象を変更したい場合、例えば、全角数字のみを半角数字に変換したい場合には %halfwidth(要約, "N")% とすれば良いでしょう。