moji

by niwaringo

niwaringo / moji

半角全角変換ライブラリ

136 Stars 12 Forks Last release: over 3 years ago (V1.2.0) MIT License 75 Commits 1 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Moji.js npm version

JavaScriptで、半角英数↔全角英数、半角カナ↔全角カナ、ひらがな↔カタカナ変換等をあつかうライブラリ

注意

githubはversion1になっていますが、npmはver0.5系のままですので、ご注意ください。 最終確認後、npmもversion1にあげます。

インストール

ブラウザ

ダウンロード


npm & require

//npm
npm i moji

// yarn yarn add moji

const moji = require("moji");

使い方

convert()

convert("変換種別)
  • "ZEtoHE": 全角英数 => 半角英数
  • "ZStoHS": 全角スペース => 半角スペース
  • "HStoZS": 半角スペース => 全角スペースに
  • "HEtoZE": 半角英数 => 全角英数
  • "HGtoKK": ひらがな => カタカナ
  • "KKtoHG": カタカナ => ひらがな
  • "ZKtoHK": 全角カナ => 半角カナ
  • "HKtoZK": 半角カナ => 全角カナ
/** 全角英数 => 半角英数 **/
moji("ABCD01234").convert("ZEtoHE").toString();
// => ABCD01234

/** 半角英数 => 全角英数 **/ moji("ABCD01234").convert("HEtoZE").toString(); // => ABCD01234

/** 全角スペース => 全角スペース **/ moji(" ").convert("ZStoHS").toString(); // => " "

/** ひらがな => カタカナ **/ moji("あいうえお").convert("HGtoKK").toString(); // => アイウエオ

/** カタカナ => ひらがな **/ moji("アイウエオ").convert("KKtoHG").toString(); // => あいうえお

/** 全角カナ => 半角カナ **/ moji("アイウエオ").convert("ZKtoHK").toString(); // => アイウエオ

/** 半角カナ => 全角カナ **/ moji("アイウエオ").convert("HKtoZK").toString(), // => アイウエオ

メソッドチェーンでつないで変換

/** [半角カナ] => [全角カナ] => [ひらがな] **/
moji("アイウエオ").convert("HKtoZK").convert("KKtoHG").toString();
// => あいうえお

標準のStringメソッド

string("標準メソッド名", [標準メソッド引数)
moji(" あ あ あ ").string("trim").convert("HG", "KK").toString(),
// => "ア ア ア"

moji("あああ").string("replace", "あああ", "いいい").convert("HG", "KK").toString(), // => イイイ

moji("abcdefghij").string("substr", 1, 2).toString(), // => bc


toString()

toString()

基本的にメソッドはメソッドチェーンでつなぐ事を想定しているため、最後に

toString
で文字列を取得してください。

filter()

指定した文字種で絞込ます。

filter("絞り込みたい文字種")
/** ひらがなを絞込 **/
moji("abcあいうアイウ123").filter("HG").toString();
// => あいう

reject()

指定した文字種を排除します。

reject("排除したい文字種")
/** ひらがなを排除 **/
moji("abcあいうアイウ123").reject("HG").toString();
// => abcアイウ123

文字種

変換などに使う文字種です。 標準では以下の文字種が登録されています。

ZE
: 全角英数 // スペース含まず
HE
: 半角英数 // スペース含まず
HG
: ひらがな
KK
: カタカナ

ZS
: 全角スペース
HS
: 半角スペース

HK
: 半角カタカナ
ZK
: 全角カタカナ(半角カタカナとの変換用) ※ 半角カナは
ガギグゲゴ
の用に
パピプペポ
のように、濁点、半濁点が別文字列になるなどの特殊性があるため、半角カナ、全角カナ変換は特別に文字種を設定しています。

文字種の追加

文字種は後から独自に追加する事が可能です。

追加例)

moji.addMojisyu("文字種名", {start: 開始文字コード, end: 終了文字コード});
moji.addMojisyu("文字種名", {regxp: 正規表現, list: 文字列の配列});

例)

javascript
moji = require("Moji");
moji.addMojisyu({"ZE", {start:0xff01, end:0xff5e}}); // 全角英数
moji.addMojisyu({"HK", {
  regexp: /([\uff66-\uff9c]\uff9e)|([\uff8a-\uff8e]\uff9f)|([\uff61-\uff9f])/g,
  list: ["。", "「", "」"]
}});

文字種のパターンについて

文字種は二つのパターンがあります。これは、文字列の中から該当文字種を検索して置換する方法に依存します。

範囲で指定する文字種

全角英数や半角英数のように、文字コードが連続している場合に仕様します。

正規表現で指定する文字種

半角カナのように連続する文字列では変換できない場合などに利用します。 正規表現(rebexp)で範囲を指定して、その範囲内の文字列がlistにあるかチェックします。

これは、listだけで検索すると文字数に応じてパフォーマンスの劣化が予想されるためです。

この辺りはFHconvertを参考にさせて頂いています。

感謝

FHconverter.jsを多く参考させて頂いています。

ライセンス

MIT

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.