news 2026/5/22 7:53:10

jquery.inputmask插件介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
jquery.inputmask插件介绍

目录

一、什么是 jQuery.inputmask?

主要应用场景

二、快速上手

1. 引入依赖文件

2. 基础用法

3. 掩码字符定义

三、高级功能

1. 自定义占位符

2. 完成回调

3. 扩展自定义字符

4. 重复掩码

5. 移除默认占位符

四、配合 Vue.js 使用

五、更多实用示例

常见格式掩码

六、注意事项

七、总结


一、什么是 jQuery.inputmask?

jQuery.inputmask.js是一个轻量级的 jQuery 插件,用于为 HTML 输入框创建输入掩码(Input Mask)。输入掩码可以预先定义输入格式,自动插入固定字符(如括号、斜杠、短横线),并限制用户输入特定类型的字符(数字、字母等)。这有助于确保数据格式的一致性,大大提升用户体验和数据准确性。

主要应用场景

  • 电话号码格式化

  • 日期输入(MM/DD/YYYY)

  • 身份证/社保号

  • 信用卡号码

  • IP地址

  • 货币金额

  • 产品密钥

二、快速上手

1. 引入依赖文件

在使用前,需要先引入 jQuery 和 inputmask 插件:

<!-- 引入 jQuery 核心库 --> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <!-- 引入 jQuery.inputmask 插件 --> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.maskedinput/1.4.1/jquery.maskedinput.min.js"></script>

2. 基础用法

选择一个输入框,调用.mask()方法并传入掩码格式:

javascript

$(document).ready(function(){ // 日期格式:月/日/年 $("#date").mask("99/99/9999"); // 电话号码格式:(区号) 号码-分机 $("#phone").mask("(999) 999-9999"); // 社保号格式 $("#ssn").mask("999-99-9999"); });

3. 掩码字符定义

插件预定义了三种基础字符类型:

字符说明示例
9数字(0-9)999→ 123
a字母(A-Z,a-z)aaa→ abc
*字母或数字***→ a1b

固定字符(非以上字符)会自动插入且用户无法删除。例如在(999) 999-9999中,括号、空格和短横线都会自动显示。

三、高级功能

1. 自定义占位符

默认占位符是下划线_,可以修改为空格或其他字符:

javascript

$("#product").mask("99/99/9999", { placeholder: " " // 使用空格作为占位符 });

2. 完成回调

当输入框填满时可以触发回调函数:

javascript

$("#date").mask("99/99/9999", { completed: function() { alert("输入完成:" + $(this).val()); } });

3. 扩展自定义字符

可以定义新的掩码字符来匹配特定正则表达式:

javascript

// 定义 '~' 字符匹配 + 或 - 符号 $.mask.definitions['~'] = '[+-]'; // 使用自定义掩码 $("#eyescript").mask("~9.99 ~9.99 999");

4. 重复掩码

当需要重复相同类型的输入时:

javascript

$("#repeatInput").inputmask({ mask: "9", repeat: 10, // 重复10次 greedy: false });

5. 移除默认占位符

不想要显示下划线占位符:

javascript

$("#noPlaceholder").inputmask({ mask: "99-9999999", placeholder: "" // 占位符为空 });

四、配合 Vue.js 使用

在现代框架(如 Vue)中使用 jQuery 插件时,需要在 DOM 渲染完成后初始化:

vue

<template> <input type="text" id="myInput" v-model="inputValue"> </template> <script> export default { data() { return { inputValue: '' }; }, mounted() { // 确保在 mounted 钩子中初始化掩码 const inputElement = $('#myInput'); inputElement.inputmask('99-9999'); } }; </script>

⚠️注意:jQuery 直接操作 DOM 可能与 Vue 的虚拟 DOM 机制产生冲突,建议谨慎使用或考虑原生替代方案。

五、更多实用示例

常见格式掩码

// IP 地址 $("#ip").inputmask("999.999.999.999"); // 货币(欧元格式) $("#currency").inputmask('€ 999.999.999,99', { numericInput: true }); // 小数(右对齐) $("#decimal").inputmask('decimal', { rightAlignNumerics: false }); // 邮箱地址(高级用法) $("#email").inputmask({ mask: "*{1,20}[.*{1,20}][.*{1,20}][.*{1,20}]@*{1,20}[.*{2,6}][.*{1,2}]", greedy: false, definitions: { '*': { validator: "[0-9A-Za-z!#$%&'*+/=?^_`{|}~\-]", cardinality: 1 } } });

六、注意事项

  1. 版本兼容性:插件支持 IE6/7、Firefox、Safari、Opera、Chrome 等主流浏览器。

  2. 框架冲突:在 React/Vue 等现代框架中,建议优先使用框架原生方案或专门适配的库。

  3. 后端验证:前端掩码只是提升用户体验的工具,不能替代后端数据验证

七、总结

jquery.inputmask.js 是一个简单实用的表单辅助工具,通过简单的 API 调用就能实现复杂的输入格式控制。虽然现代前端框架逐渐弱化 jQuery 的地位,但这个插件在传统项目或快速原型开发中仍有很高的实用价值。掌握它,能让你的表单数据更规范、用户输入更轻松!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 7:47:23

Unity视频开发避坑指南:AVPro Video实战配置与跨平台兼容方案

1. 为什么Unity原生VideoPlayer总在关键时刻掉链子&#xff1f;做Unity视频播放功能时&#xff0c;我踩过最深的坑&#xff0c;就是信了官方文档里那句“VideoPlayer组件开箱即用”。去年给一个商场数字导览项目做交互式视频墙&#xff0c;要求4K分辨率、多屏同步、实时字幕叠加…

作者头像 李华
网站建设 2026/5/22 7:46:05

Unity背包系统实战:JSON配置+对象池+像素级UI优化

1. 为什么一个“背包系统”值得单独做一次完整实战&#xff1f;在Unity项目里&#xff0c;背包系统从来不是个边缘功能——它是个典型的“小接口、大心脏”模块。我带过十几支中小型开发团队&#xff0c;几乎每支队伍都在项目中期被背包逻辑拖住进度&#xff1a;UI突然卡顿、物…

作者头像 李华
网站建设 2026/5/22 7:43:52

Unity传送门特效实现原理与渲染管线适配指南

1. 为什么一个“传送门”特效包&#xff0c;能直接决定玩家是否愿意多留三分钟&#xff1f;在Unity项目里&#xff0c;我见过太多团队把“传送门”当成一个简单的贴图切换或摄像机裁剪——结果就是玩家刚踏进传送区域&#xff0c;画面突然黑一下、视角抖两下、再切到新场景&…

作者头像 李华
网站建设 2026/5/22 7:42:02

chatbox ai

Chatbox AI 是一款跨平台、多模型集成的 AI 助手&#xff0c;核心是让你在一个界面里管理、切换、使用 GPT-4o、Claude、DeepSeek、Gemini 等主流大模型&#xff0c;并附带文件解析、代码、绘图、联网等增强功能。在如今多种ai软件并发&#xff0c;GPT&#xff0c;豆包&#xf…

作者头像 李华
网站建设 2026/5/22 7:37:04

IDRAC连接失败的七层排障指南:从物理层到浏览器层

1. 为什么IDRAC连接失败不是“网络不通”四个字能概括的事IDRAC&#xff08;Integrated Dell Remote Access Controller&#xff09;是戴尔服务器上那块独立于主系统的带外管理芯片&#xff0c;它不依赖操作系统、不经过CPU内存、甚至主机断电后只要电源模块有电&#xff0c;它…

作者头像 李华