Regex jquery中EIN编号和SSN编号格式的正则表达式

Regex jquery中EIN编号和SSN编号格式的正则表达式,regex,jquery-validate,Regex,Jquery Validate,对于jquery验证,我需要用于SSN编号格式和EIN编号格式的正则表达式 EIN号码,如52-4352452 SSN编号,如555-55-5555,适用于SSN: 对于EIN: 对于EIN,如果有效,将返回true: /^(0[1-9]|[1-9]\d)-\d{7}$/.test($('#your-ein-field-id').val()) 若要将其限制为实际前缀,请改用此正则表达式: /^(0[1-6]||1[0-6]|2[0-7]|[35]\d|[468][0-8]|7[1-7]|9[

对于jquery验证,我需要用于SSN编号格式和EIN编号格式的正则表达式

EIN号码,如52-4352452

SSN编号,如555-55-5555,适用于SSN:

对于EIN:


对于EIN,如果有效,将返回
true

/^(0[1-9]|[1-9]\d)-\d{7}$/.test($('#your-ein-field-id').val())
若要将其限制为实际前缀,请改用此正则表达式:

/^(0[1-6]||1[0-6]|2[0-7]|[35]\d|[468][0-8]|7[1-7]|9[0-58-9])-\d{7}$/
但是,请注意,如果添加了新的前缀,这将不是最新的。

我们的需要
  • 没有前缀限制
  • ,连字符可选
  • 使用连字符,可接受的格式:
    00-0000000
正则表达式 用JavaScript/jQuery演示

var patternEIN=/^\d{2}\-?\d{7}$/;
patternEIN.test($('#ein1').val());//失败
patternEIN.test($('#ein2').val());//通过
patternEIN.test($('#ein3').val());//通过

由于前面的所有答案都将此问题视为两个独立的问题,因此我将必要的正则表达式组合为一个正则表达式

这将适用于SSN和EIN,无论是否使用连字符进行格式化

/(^\d{9})|(^\d{3}-\d{2}-\d{4}$)|(^[1-9]\d?-\d{7}$)/

^\d{2}\-?\d{7}$
<input type="text" id="ein1" value="0112345-67" />
<input type="text" id="ein2" value="01-1234567" />
<input type="text" id="ein3" value="011234567" />

<script type="text/javascript">
    var patternEIN = /^\d{2}\-?\d{7}$/;

    patternEIN.test($('#ein1').val()); // fail
    patternEIN.test($('#ein2').val()); // pass
    patternEIN.test($('#ein3').val()); // pass
</script>