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

如何实现SSN输入表单字段的验证与格式设置

SSN输入字段验证与格式设置实现方案

1. 输入即时自动格式化(提升用户体验)

用户输入过程中自动插入短横线,无需用户手动输入,同时限制输入内容仅为数字:

const ssnInput = document.getElementById('correctSSN');

ssnInput.addEventListener('input', (e) => {
  // 先移除所有非数字字符
  let value = e.target.value.replace(/\D/g, '');
  // 按位置插入短横线
  if (value.length > 3) value = value.slice(0,3) + '-' + value.slice(3);
  if (value.length > 6) value = value.slice(0,6) + '-' + value.slice(6, 10);
  e.target.value = value;
});

2. 前端合法性校验

原生HTML校验(无需额外JS)

直接给input标签添加pattern属性和必填标记即可实现原生表单校验:

<input 
  type="text" 
  placeholder="XXX-XX-XXXX"  
  class="form-control" 
  id="correctSSN"
  pattern="\d{3}-\d{2}-\d{4}"
  required
  title="请输入符合XXX-XX-XXXX格式的9位SSN号码"
>

JS自定义校验(适配自定义错误提示逻辑)

表单提交前主动校验格式是否符合要求:

function validateSSN(ssn) {
  const ssnReg = /^\d{3}-\d{2}-\d{4}$/;
  return ssnReg.test(ssn);
}

// 表单提交时调用
document.querySelector('form').addEventListener('submit', (e) => {
  const ssnVal = ssnInput.value.trim();
  if (!validateSSN(ssnVal)) {
    e.preventDefault();
    alert('SSN格式错误,请输入XXX-XX-XXXX格式的9位数字');
    // 可替换为自定义的页面内错误提示样式
  }
});

3. 后端二次校验

前端校验仅做体验优化,所有提交的数据必须在后端再次校验,避免前端校验被绕过导致非法数据入库,校验正则与前端一致为^\d{3}-\d{2}-\d{4}$。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:24:07