插件 jQuery.inputmask 中文API文档

🌙
手机阅读
本文目录结构

插件 jQuery.inputmask 中文API文档 https://github.com/RobinHerbots/Inputmask

输入掩码

nputmask 是一个创建输入掩码的 javascript 库。Inputmask 可以针对 vanilla javascript,jQuery 和 jqlite 运行。

输入掩码通过确保预定义格式来帮助用户输入。这可用于日期,数字,电话号码,……

强调:

  • 使用方便
  • 任选部件都在面具中
  • 定义隐藏复杂性的别名的可能性
  • 日期 / 日期时间掩码
  • 数字面具
  • 很多回调
  • 非贪婪的面具
  • 可以通过选项启用 / 禁用 / 配置许多功能
  • 支持 readonly / disabled / dir =“rtl”属性
  • 支持 data-inputmask 属性
  • 交流发电机面罩
  • 正则表达式面罩
  • 动态遮罩
  • 预处理面罩
  • JIT 掩蔽
  • 没有输入元素的值格式化 / 验证
  • AMD / CommonJS 支持
  • dependencyLibs:vanilla javascript,jQuery,jqlite
  • Android 支持

演示页面见 http://robinherbots.github.io/Inputmask

感谢 Jetbrains 为其出色的 Webstorm IDE 提供免费许可。

建立

dependencyLibs

Inputmask 可以针对不同的 javascript 库运行。你可以选择:

  • inputmask.dependencyLib(vanilla)
  • inputmask.dependencyLib.jquery
  • inputmask.dependencyLib.jqlite
  • ….(欢迎其他人)

带有< script>标签的经典 Web

包括您可以在 dist 文件夹中找到的 js 文件。

使用 jQuery 作为 dependencylib 的输入掩码。

<script src="jquery.js"></script>
<script src="dist/jquery.inputmask.js"></script>

带有 vanilla dependencylib 的输入掩码。

<script src="dist/inputmask.js"></script>

如果您想自动将输入掩码绑定到使用 data-inputmask- … 属性标记的输入,您可能还需要包含 inputmask.binding.js

<script src="dist/bindings/inputmask.binding.js"></script>

WebPack

安装包

npm install inputmask --save

安装最新的测试版

npm install inputmask@next --save

在你的模块中

如果要包含 Inputmask 和所有扩展名。

var Inputmask = require('inputmask');
//es6
import Inputmask from "inputmask";

对于个人扩展。每个扩展都会导出 Inputmask,因此您只需要导入扩展名。见例子。

require("inputmask/lib/extensions/inputmask.numeric.extensions");
var Inputmask = require("inputmask/lib/extensions/inputmask.date.extensions");

//es6
import "inputmask/lib/extensions/inputmask.numeric.extensions";
import Inputmask from "inputmask/lib/extensions/inputmask.date.extensions";

选择 dependencyLib

默认情况下,使用 vanilla dependencyLib。您可以通过在 webpack.config 中创建别名来选择另一个依赖项。

 resolve: {
        alias: {
            "./dependencyLibs/inputmask.dependencyLib": "./dependencyLibs/inputmask.dependencyLib.jquery"
        }
    },

用法

通过 Inputmask 类

var selector = document.getElementById("selector");

var im = new Inputmask("99-9999999");
im.mask(selector);

//or

Inputmask({"mask": "(999) 999-9999", .... other options .....}).mask(selector);
Inputmask("9-a{1,3}9{1,3}").mask(selector);
Inputmask("9", { repeat: 10 }).mask(selector);

Inputmask({ regex: "\\d*" }).mask(selector);
Inputmask({ regex: String.raw`\d*` }).mask(selector);

通过 jquery 插件

$(document).ready(function(){
  $(selector).inputmask("99-9999999");  //static mask
  $(selector).inputmask({"mask": "(999) 999-9999"}); //specifying options
  $(selector).inputmask("9-a{1,3}9{1,3}"); //mask with dynamic syntax
});

通过 data-inputmask 属性

<input data-inputmask="'alias': 'datetime'" />
<input data-inputmask="'mask': '9', 'repeat': 10, 'greedy' : false" />
<input data-inputmask="'mask': '99-9999999'" />
$(document).ready(function(){
  $(":input").inputmask();
  or
  Inputmask().mask(document.querySelectorAll("input"));
});

任何选项也可以通过使用数据属性来传递。使用 data-inputmask- < 选项名称 > =“value”

<input id="example1" data-inputmask-clearmaskonlostfocus="false" />
<input id="example2" data-inputmask-regex="[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?" />
$(document).ready(function(){
  $("#example1").inputmask("99-9999999");
  $("#example2").inputmask();
});

允许的 HTML 元素

  • < input type=“text”>
  • < input type=“search”>
  • < input type=“tel”>
  • < input type=“url”>
  • < input type=“password”>
  • < div contenteditable=“true”> (以及所有其他人都满意的支持)
  • < textarea>
  • 任何 html 元素(掩码文本内容或使用 jQuery.val 设置 maskedvalue)

允许的输入类型在 supportsInputType 选项中定义。另见(input-type-ref)

默认屏蔽定义

  • 9 :数字
  • a :按字母顺序排列
  • * :字母数字

扩展中定义了更多定义。 您可以在 js 文件中查找信息或进一步浏览选项。

掩蔽类型

静电面具

这些是掩蔽的基础。掩码已定义,并且在输入期间不会更改。

$(document).ready(function(){
  $(selector).inputmask("aa-9999");  //static mask
  $(selector).inputmask({mask: "aa-9999"});  //static mask
});

可选面具

可以将掩码中的某些部分定义为可选。这是通过使用 [] 完成的。

例:

$('#test').inputmask('(99) 9999[9]-9999');

这个面具将允许输入像 (99) 99999-9999 或 (99) 9999-9999。

输入 => 12123451234 掩码 =>(12)12345-1234(触发完成) 输入 => 121234-1234 掩码 =>(12)1234-1234(触发完成) 输入 => 1212341234 掩码 =>(12)12341-234_(触发不完整)

skipOptionalPartCharacter

另外还有另一个可配置字符,用于跳过掩码中的可选部分。

skipOptionalPartCharacter: " "

输入 => 121234 1234 mask =>(12)1234-1234(触发完成)

当 clearMaskOnLostFocus: true 在选项中设置时(默认),当未填充时,掩码将清除可选部分,这仅在可选部分位于掩码末尾时才会清除。

例如,给定:

$('#test').inputmask('999[-AAA]');

虽然该字段具有焦点并且为空白,但用户将看到完整的掩码___-___。当填充掩模的所需部分并且场失去焦点时,用户将看到 123。当填充掩模的必需部分和可选部分并且场失去焦点时,用户将看到 123-ABC。

贪婪假的可选面具

当使用 greedy:false 选项定义可选掩码时,输入掩码将首先显示最小可能掩码作为输入。

$(selector).inputmask({ mask: "9[-9999]", greedy: false });

显示的初始掩码将是“ _ ”而不是“ _ -____”。

动态面具

动态蒙版可以在输入期间更改。要定义动态部分,请使用{}。

$(document).ready(function(){
  $(selector).inputmask("aa-9{4}");  //static mask with dynamic syntax
  $(selector).inputmask("aa-9{1,4}");  //dynamic mask ~ the 9 def can be occur 1 to 4 times

  //email mask
  $(selector).inputmask({
    mask: "*{1,20}[.*{1,20}][.*{1,20}][.*{1,20}]@*{1,20}[.*{2,6}][.*{1,2}]",
    greedy: false,
    onBeforePaste: function (pastedValue, opts) {
      pastedValue = pastedValue.toLowerCase();
      return pastedValue.replace("mailto:", "");
    },
    definitions: {
      '*': {
        validator: "[0-9A-Za-z!#$%&'*+/=?^_`{|}~\-]",
        casing: "lower"
      }
    }
  });
  //decimal mask
   Inputmask("(.999){+|1},00", {
        positionCaretOnClick: "radixFocus",
        radixPoint: ",",
        _radixDance: true,
        numericInput: true,
        placeholder: "0",
        definitions: {
            "0": {
                validator: "[0-9\uFF11-\uFF19]"
            }
        }
   }).mask(selector);
});

交流发电机面罩

交流发电机语法类似于 OR 语句。掩模可以是交流发电机中指定的 3 种选择之一。

要定义交流发电机,请使用|。例如:“a | 9”=> a 或 9“(aaa)|(999)”=> aaa 或 999“(aaa | 999 | 9AA)”=> aaa 或 999 或 9AA

另外,请务必阅读有关 keepStatic 选项的信息。

$("selector").inputmask("(99.9)|(X)", {
  definitions: {
    "X": {
      validator: "[xX]",
      casing: "upper"
    }
  }
});

要么

$("selector").inputmask({
  mask: ["99.9", "X"],
  definitions: {
    "X": {
      validator: "[xX]",
      casing: "upper"
    }
  }
});

预处理掩码

您可以将掩码定义为可以允许预处理结果掩码的函数。示例排序多个掩码或通过 ajax 动态检索掩码定义。预处理 fn 应返回有效的掩码定义。

$(selector).inputmask({ mask: function () { /* do stuff */ return ["[1-]AAA-999", "[1-]999-AAA"]; }});

JIT Masking

及时掩盖。使用 jitMasking 选项,您可以启用 jit masking。只有用户输入的字符才能看到遮罩。默认值:false

值可以是 true 或阈值数或 false。

Inputmask("datetime", { jitMasking: true }).mask(selector);

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了