計算式プラグインで、カナ小文字を大文字に変換します。
概要
計算式プラグインで、小文字のカナを大文字に変換してみます。
アルファベットの upper 関数のように、簡単に変換できる関数が無く、小文字のカナを1文字ずつ大文字に変換します。
変換前
"ァAィBゥCェDォEャFュGョHッIヮJァAィBゥ"
変換後
"アAイBウCエDオEヤFユGヨHツIワJアAイBウ"
計算式
処理の流れ
low 配列にある小文字のカタカナを一つずつ、対応する upper 配列の大文字カタカナに置き換えます。
すべての置換が終わると、最終的な文字列(大文字に変換されたもの)が出力されます。
- str: 元の文字列。例に出ているのは「ァAィBゥCェDォEャFュGョHッIヮJァAィBゥ」
- low: 小文字のカタカナ配列
小文字のカタカナが定義されています(「ァ」、「ィ」、「ゥ」など) - upper: 対応する大文字のカタカナ配列。これが変換先
- ARRAY_MAP: low の配列(小文字カタカナ)を繰り返し処理
- x: 配列内の現在の要素(小文字のカタカナ)
- idx: 現在のインデックス(配列内の位置)
- FSET: str の中の x(小文字)を upper 配列の対応する要素(idx を使って)で置換
- str: 最終的に変換された str が返されます
.js
LET(str,"ァAィBゥCェDォEャFュGョHッIヮJァAィBゥ",
low,ARRAY("ァ","ィ","ゥ","ェ","ォ","ャ","ュ","ョ","ッ","ヮ"),
upper,ARRAY("ア","イ","ウ","エ","オ","ヤ","ユ","ヨ","ツ","ワ"),
dummy,ARRAY_MAP(low,x,idx,
FSET(str,REPLACEALL(str,x,ARRAY_GET(upper,idx)))
),
str
)
または、ARRAY の代わりに SPLIT で記述
.js
LET(str,"ァAィBゥCェDォEャFュGョHッIヮJァAィBゥ",
low,SPLIT("ァィゥェォャュョッヮ",""),
upper,SPLIT("アイウエオヤユヨツワ",""),
dummy,ARRAY_MAP(low,x,idx,
FSET(str,REPLACEALL(str,x,ARRAY_GET(upper,idx)))
),
str
)