inputをパターン制御をするライブラリ【formatter.js】
formatter.jsは、inputをパターン制御をする事ができるライブラリです。
jQueryでラッパーされたjquery.formatter.jsもあります。
デモ
See the Pen formatter.js demo by mizusawa (@webty_mizusawa) on CodePen.
使い方
// Vanilla Javascript
var formatted = new Formatter(document.getElementById('credit-input'), {
'pattern': '{{999}}-{{999}}-{{999}}-{{9999}}',
'persistent': true
});
// jQuery
$('#credit-input').formatter({
'pattern': '{{999}}-{{999}}-{{999}}-{{9999}}',
'persistent': true
});
パターンの設定
パターンは
のような形式で指定できます。({{999}}) {{999}}-{{999}}
パターンは、{{}}の中にメタ文字を記述することができます。
初期では、以下の3つがメタ文字として設定させています。
- 9: [0-9]
- a: [A-Za-z]
- *: [A-Za-z0-9]
メタ文字の追加
メタ文字はaddInptType関数を使用することによって追加することができます。
// Vanilla Javascript
Formatter.addInptType('L', /[A-Z]/);
// jQuery
$.fn.formatter.addInptType('L', /[A-Z]/);
オプション
persistent
persistentパラメータは、Trueの場合、常にハイフンなどのパターンの変わらない部分が表示されます。Falseの場合、適宜表示されます。初期値はFalseです。
patterns
フォームに入力された値からパターンをフレキシブルに変更する事ができます。
[
{ '^\d{5}$': 'zip: {{99999}}' },
{ '^.{6,8}$: 'postal code: {{********}}' },
{ '*': 'unknown: {{**********}}' }
]
パターンのリセット
resetPattern関数を用いることで既に設定しているパターンをリセットすることができます。
// Vanilla Javascript
formatted.resetPattern('{{999}}.{{999}}.{{9999}}');
// jQuery
$('#selector').formatter().resetPattern();