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

时间:2016-02-09 03:24:43

标签: 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) && (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;
}

但它有时会出错,而不是特别是在移动设备上完全无效。我尝试了下面的解决方案,但他们没有工作。我正在应用上述方法就是这样做..

document.getElementById("ssn").addEventListener('keyup',ssnCheck,false);

任何有关使其正常工作的帮助,因此它会自动格式化,或者更好地解决此问题,因为当它们在框中输入完成后,它必须以XXX-XX-XXXX格式显示。

1 个答案:

答案 0 :(得分:0)

试试这个regax:

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