You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery在keyup事件下格式化SSN输入并掩码除后4位外的内容

实现SSN输入的自动格式化与掩码

核心需求拆解

  • 输入时自动补全短横线,匹配xxx-xx-xxxx的标准SSN格式
  • 掩码除最后4位外的所有数字,最终显示为***-**-1234样式

改进后的代码

$(".ssnclass").on("input", function () {
    // 过滤掉所有非数字字符
    let rawValue = $(this).val().replace(/\D/g, '');
    // 按SSN格式拼接短横线,最多保留9位有效数字
    let formattedValue = rawValue.slice(0,3) + 
                         (rawValue.length > 3 ? '-' : '') + 
                         rawValue.slice(3,5) + 
                         (rawValue.length > 5 ? '-' : '') + 
                         rawValue.slice(5,9);
    // 掩码替换:将最后4位之前的数字转为*
    let maskedValue = formattedValue.replace(/\d(?=.*\d{4})/g, '*');
    $(this).val(maskedValue);
});

代码说明

  • 用input事件替代keyup,能覆盖粘贴、右键输入等更多输入场景
  • 先过滤非数字字符,确保只处理有效数字内容
  • 分阶段添加短横线:输入超过3位时自动补第一个短横线,超过5位时补第二个
  • 先完成格式拼接再做掩码处理,保证短横线位置不被错误替换
  • 限制最多保留9位数字,符合SSN的长度规范

额外优化提示

  • 给输入框添加maxlength="11"属性(格式化后总长度为11:3位数字+短横线+2位数字+短横线+4位数字),避免无效输入
  • 若需要解决光标偏移问题,可以额外记录光标位置,格式化后恢复对应位置,避免输入时光标跳到末尾

内容的提问来源于stack exchange,提问作者user3589388

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 08:18:35