Giter Site home page Giter Site logo

moji's Introduction

Moji.js npm version

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

注意

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

インストール

ブラウザ

ダウンロード

<script src="/path/to/script/moji.js"></script>
<script>
$("hoge input")
  .val(new Moji($("hoge input").val()).convert("ZE", "HE").toString());
</script>

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: 文字列の配列});

例)

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

moji's People

Contributors

niwaringo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moji's Issues

npmパッケージの更新

2017年9月4日現在発行されている[email protected]は動作しません。

yarn add moji
# ├─ [email protected]

nvm use 0
# Now using node v0.12.13 (npm v2.15.0)

node
require('moji')('test').convert('HEtoZE')
# TypeError: Cannot read property 'start' of undefined
#     at Moji._mojisyuType (/Users/59naga/Downloads/hoge/node_modules/moji/src/moji.core.js:184:16)
#     at Moji.convert (/Users/59naga/Downloads/hoge/node_modules/moji/src/moji.core.js:32:14)
#     at repl:1:25
#     at REPLServer.defaultEval (repl.js:132:27)
#     at bound (domain.js:291:14)
#     at REPLServer.runBound [as eval] (domain.js:304:12)
#     at REPLServer.<anonymous> (repl.js:279:12)
#     at REPLServer.emit (events.js:107:17)
#     at REPLServer.Interface._onLine (readline.js:214:10)
#     at REPLServer.Interface._line (readline.js:553:8)

現在のレポジトリ a1511d1 を直接npm installする場合は動作します。

npm install https://github.com/niwaringo/moji
# [email protected] node_modules/moji

node
require('moji')('test').convert('HEtoZE')
# { _str: 'test',
# ...

npmパッケージの更新をお願い致します。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.