检查使用Javascript键入的字符串是否为有效的SSN

检查使用Javascript键入的字符串是否为有效的SSN,javascript,Javascript,我想进行验证检查,查看输入文本框的SSN是否遵循以下特定格式:XXX-XX-XXXX 我试着做一个功能,只是像这样自动格式化 function ssnCheck() { var val = this.value.replace(/\D/g, ''); var newVal = ''; if(val.length > 4) { this.value = val; } if((val.length > 3) && (

我想进行验证检查,查看输入文本框的SSN是否遵循以下特定格式:
XXX-XX-XXXX

我试着做一个功能,只是像这样自动格式化

function ssnCheck() {
    var val = this.value.replace(/\D/g, '');
    var newVal = '';
    if(val.length > 4) {
        this.value = val;
    }
    if((val.length > 3) && (val.length < 6)) {
        newVal += val.substr(0, 3) + '-';
        val = val.substr(3);
    }
    if (val.length > 5) {
        newVal += val.substr(0, 3) + '-';
        newVal += val.substr(3, 2) + '-';
        val = val.substr(5);
    }

    newVal += val;
    this.value = newVal;
}
任何关于使其工作的帮助,使其在键入时自动格式化,或者更好地解决此问题,因为在框中键入后,必须以XXX-XX-XXXX格式显示。

尝试此regax:

^\d{3}(?:[-]\d{2})(?:[-]\d{4})?$
  • ^=字符串的开头
  • (?:…)=分组
  • \d{3}=匹配3位数字
  • \d{2}=匹配2位数字
  • \d{4}=匹配4位数字
  • [-]=匹配连字符
  • $=字符串的结尾

仅扫描9位数字,不接受任何其他字符的可能重复。格式化是你的责任。@PM77-1我不想要一个简单的reg-ex,我希望它发生在他们打字时,所以你不能像中那样只使用
模式
属性(或其多边形填充)?
^\d{3}(?:[-]\d{2})(?:[-]\d{4})?$