如何使用JavaScript输入掩码实现Mac ID与电话号码的适配格式化
兼容Mac ID与电话号码录入的IMask实现方案
你需要使用IMask的dispatch动态调度能力,根据输入内容的开头自动切换掩码规则,实现需求的完整代码如下:
页面结构代码
<script src="https://unpkg.com/imask"></script> <div class="form-group"> <label>Mac地址或手机号</label> <input type="text" class="form-control" name="user" id="user" placeholder="请输入内容"> </div>
掩码配置代码
const inputMask = new IMask(document.getElementById('user'), { dispatch: (inputChar, currentMask) => { const fullValue = currentMask.value + inputChar // 输入内容以00开头时,启用Mac地址格式化规则 if (fullValue.startsWith('00')) { return { mask: '**:**:**:**:**:**', definitions: { // 限制Mac地址仅允许十六进制字符,不需要可删除该配置段 '*': /[0-9A-Fa-f]/ } } } // 其他输入内容使用纯数字规则,适配手机号录入,无自动插入冒号逻辑 return { mask: /^\d{0,11}$/ } } })
规则说明
- 只要输入内容以
00开头,就会自动触发Mac地址格式化逻辑,每输入2个字符自动插入冒号 - 非00开头的输入内容默认按照手机号规则处理,仅允许输入数字,不会自动添加分隔符
- 可以根据业务需要调整非00场景下的正则规则,比如支持带国际区号的电话号码格式
内容的提问来源于stack exchange,提问作者Muhammad Yahya Imran
相关产品推荐
相关产品推荐

