Javascript验证文本区域以查找SSN

时间:2018-03-29 21:10:29

标签: javascript

我正在尝试创建一个文本区域备注字段的快速验证,以查看它是否可能包含一个SSN号码,然后我会发出警报。

我尝试了一些我在网上找到的不同的RegEx模式,但似乎都没有。我想知道我的javascript是否不正确?

我相信如果要找到匹配,那么就会抛出SSN Found警告。

有人指出我的错误吗?

$(document).ready(function() {
  $('[name="submit"]').click(function() {
    validate();
  })
})

// Validate our note field
function validate() {

  var isValid = true,
    notes = $('[name=notes]').val(),
    ssn = new RegExp('^(?!219-09-9999|078-05-1120)(?!666|000|9\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}$');

    console.log(notes)

  if (ssn.test(notes)) {
    alert('SSN Found');
  }else{
    alert('No SSN Found');
  }

}

JS小提琴:https://jsfiddle.net/sgrw4rqf/2/

1 个答案:

答案 0 :(得分:1)

您需要使您的正则表达式全局化而不是仅匹配SSN。

使用类似的东西:

if ($('[name=notes]').val().match(/\b(?!219-09-9999|078-05-1120)(?!666|000|9\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}\b/g)) {

它将按预期匹配。