我正在尝试创建一个文本区域备注字段的快速验证,以查看它是否可能包含一个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');
}
}
答案 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)) {
它将按预期匹配。