2010/08/17

文字列の全角・半角を変換する

NILScriptではJavaScript標準の型である文字列や数値にも拡張メソッドが用意されています。
文字列の拡張メソッド「format()」では、引数で指定した条件に従って文字列の全角・半角などの変換を行なえます。
引数には、今の所以下のアルファベットの組み合わせを指定できます。
a 全角→半角(アルファベットと数字)
A 半角→全角(アルファベットと数字)
r 全角→半角(アルファベット)
R 半角→全角(アルファベット)
n 全角→半角(数字)
N 半角→全角(数字)
s 全角→半角(空白文字)
S 半角→全角(空白文字)
m 全角→半角(対応する半角文字がある全ての記号)
M 半角→全角(全ての記号)
E 半角→全角(ファイル名に使用できない記号)
f 全角→半角(ファイル名に使用可能な記号)
Y MもしくはEと共に指定すると、\を/でなく¥に置換
k 全角→半角(カタカナ)
K 半角→全角(カタカナ)
V 半角→全角(カタカナ。濁点・半濁点の合成を行う)

これを利用すれば、何故か英数字が全角になっているサイトから抽出した文字列を半角に修正するなどの処理が簡単に行なえます。
例えば、「title」という変数に入っている文字列の全角文字を半角文字に置き換えるには、以下のようにします。
title=title.format('asm');
これだけで、「NILScript」のような忌々しい全角文字列を「NILScript」のように半角に変換できます。
全角英数字は、検索で見つけにくくなるなどの害がありますので、是非この機能を活用して撲滅してください。

ファイル名に使用できない文字だけを全角に変換する機能も便利です。
下記のようにすれば、ファイル名に使用可能な記号は半角に、使用不可能な記号は全角に変換してくれます。
var filename=title.format('asfE');
Webページのタイトル等から取得した文字列には、ファイル名に使用できない文字が含まれている可能性があるので、保存ファイル名などとして使う場合には、このようにして変換すると良いでしょう。

0 件のコメント:

コメントを投稿