全角半角という言葉は、パソコン普及前夜のワープロ時代の遺物。「住所を全角で入れてください」など、優しくないお願いは排除し、必要な処理はプログラムでしましょう。
日本政府、経済産業省(経産省)から「IMI 情報共有基盤 コンポーネントツール」が発表されました。
5つ星オープンデータの語彙を定める「共通語彙基盤IMI」に関連したオープンソースなJavaScriptで作られたツール群です。
Node.js を前提に作られていますが、ブラウザや Deno で動かしたいので、ひとまず簡単そうな「全角-半角統一コンポーネント」を移植。インストール不要で下記のようにすっきり使えるものができました!(src on GitHub)
$ cat > main.mjs import IMIMojiConverter from "https://code4sabae.github.io/imi-moji-converter-es/IMIMojiConverter.mjs"; console.log(IMIMojiConverter.toHalfWidth("あかさたな0123456789")); console.log(IMIMojiConverter.toFullWidth("アカサタナ0123456789")); $ deno run main.mjs あかさたな0123456789 アカサタナ0123456789
ブラウザからはこの main.mjs をESモジュールとして読み込めば動きます
<script type="module" src="main.mjs"></script>
ブラウザ用の記述と、コンソール上のDeno、同じコードで動くのが、ESモジュールのいいところ!全角や半角という言葉をウェブサイト上で使っている方、利用者の登録率や利便性を向上させるためにご活用ください!
移植にあたって、imi-moji-converter が依存している Node.js 用の「半角全角変換ライブラリ」をDeno用に移植しました。(src on GitHub)
変換が必要ないので、srcフォルダが不要で、プログラムはすべてdocs内に置いています。ESモジュール以前の表記、require/export を import/export に変更し、testをDeno用に書き換えます。Node.jsっぽいテスト表記を実現する nodelikeassert.mjs を denolib に追加。
「半角全角変換ライブラリ test」
ライブラリはURLで読み込むだけなので、node_modules も不要、インストールも不要でとってもシンプルです!
オープンソース活用、加速しそうです!
→ 2020-05-30 対応拡大!
links
- 経産省発の npm モジュール!住所や電話番号の正規化、ジオコーディングなどができる IMI コンポーネントツールを試した! - Geolonia developer's blog
- DenoとWebSocketで作る匿名チャットサーバー&webアプリ
- DenoとNodeとwebアプリの全対応、コンパクトに作り始めるLISPのS式風ライブラリ
- NodeからDenoへ、福井県で活用オープンソースのPUSHかんたんオープンデータ、バックエンド移行