regex - 用于验证 SSN 异常的正则表达式
问题描述
所以我正在尝试编写一个正则表达式来检查社会安全号码,并验证前 3 个数字不是 000、666 或任何 900 个数字(900、901...、999)。我对正则表达式比较陌生,我无法理解如何检查这种情况的前 3 个字符。然后检查接下来的2个字符不能是00,最后4个字符不能都是相同的数字。我想出了无数次尝试,但都没有完成。我不是在这里寻找答案,但也许有助于理解这个表达式是如何工作的。
解决方案
^(?!000|666|9\d\d)\d{3}-(?!00)\d\d-(!?(.)\1{3})\d{4}$
第一个负前瞻不允许000
, 666
, 和9\d\d
开头。
第二个负前瞻不允许00
作为第二个数字块。
第三个否定前瞻不允许一个字符后跟 3 次相同字符的重复。这可以防止您在最后一个块中使用所有相同的数字。
我想不出来
推荐阅读
- html - Xpath - 和问题
- go - 捕获 exec.Command 的缓冲标准输出
- angular - Angular 组件上的两个 ngcontent
- c# - C# protobuf 使用 ZMQ 反序列化错误,写入类型无效
- ios - facebook 登录提示中的应用程序名称
- android - MediaStore:查询不返回所有歌曲
- laravel - Laravel:从队列中删除作业
- javascript - 如何在打字稿中定义 javascript 对象
- php - str_to_date 函数在复杂的 mysql 查询 joomla 中不起作用
- android - Firebase:将分析和崩溃数据报告到不同的项目