当前位置: 首页 > 知识库问答 >
问题:

SSN和9号筛选问题

穆宏胜
2023-03-14

此正则表达式正在寻找几种格式的社会安全号码(SSN),但它也忽略了明显无效的SSN,如123-45-6789或000-00-0000等。

此表达式应找到一个社会保险号:

  • 包含任何非数字分隔符(即####-##-##-#########.##################35;######
  • 它还应该按顺序捕捉9位数字,不带分隔符,但以空格为边界(即“text################################`)
  • 表达式将忽略以下社会保险号:在任何特定组中包含所有零(即000-##-######-00-######,或###-###-0000)。李>
  • 以666开头
  • 从900-999的任意值开始
  • 等于078-05-1120(由于伍尔沃思钱包的惨败)
  • 等于219-09-9999(出现在社保局的广告中)
  • 包含所有匹配值(即,000-00-0000、111-11-1111、222-22-2222等)
  • 包含所有递增值(即123-45-6789)

正则表达式

(@"(?!\b(\d)\1+\D?(\d)\1+\D?(\d)\1+\b)(?!123\D?45\D?6789|219\D?09\D?9999|078\D?05\D?1120)(?!666|000|9\d{2})(?<!\d)\d{3}\D?(?!00)\d{2}\D?(?!0{4})\d{4}(?!\d)(?<!\d{5}-\d{4})",

问题是我们捕获了其他类似的条目,但我们需要足够具体,这些条目没有被捕获。

例如-

 (xxxx) xxx-xx-xxxx

 684072943 (and order number etc.)

 FA300217F0090

 Potential Match #1:--------------- nt: ex: 201[[71230 0821]] am ex: 201[[71230 0821]] am 26 JUNE 2012 ---------------Potential Match #2:--------------- am ex: 201[[71230 0821]] am 26 JUNE 2012 DTG (date time group) 

"[[ 210v13:2012]],"

有什么想法吗?

共有1个答案

狄兴业
2023-03-14

您可以使用\D?匹配任何非数字作为分隔符。这将是一个更简化的SSN验证器:

^(?!219\D?09\D?9999|078\D?05\D?1120)(?!666|000|9\d{2})d{3}\D?(?!00)\d{2}\D?(?!0{4})\d{4}$

本文可能会有所帮助:http://rion.io/2013/09/10/validating-social-security-numbers-through-regular-expressions-2/

本文还提供了一个更为全面的解决方案,这可能正是您想要的:

^(?!\b(\d)1+\D?(\d)1+\D?(\d)1+\b)(?!123\D?45\D?6789|219\D?09\D?9999|078\D?05\D?1120)(?!666|000|9d{2})\d{3}\D?(?!00)\d{2}\D?(?!0{4})\d{4}$
 类似资料:
  • 我有一个带有tablesorter的表,在其中我希望有十进制列的总和,还希望有可能按任何列筛选数据。 当我按小数筛选表时,它工作得很好,但当我按日期筛选表时,带有总计的行就会消失。 正在工作的JSFIDLE:https://jsfidle.net/rorymccrossan/ak29tupf/

  • 问题内容: 该字符串不应包含SSN或电话号码。下面的正则表达式不起作用,它仅接受xxxxxxxxx格式。 不应包含或或。 问题答案: 您可以尝试: 解释一下,如果我们阅读了您提供的查询: 我们可以读到:( 在我的顶部版本中,我改写为:。)。 保证世界上任何字符串都不匹配其中至少两个,因此它们的组合始终为真,从而为您提供了一个简单得多的有效正则表达式: 是零宽度的断言,因此它不消耗任何东西。即使匹配

  • 我被安排了即将到来的测试作业,我需要在一个充满电影细节的数据库中搜索带有标点符号的片名。 我唯一的想法是用MySQL的in运算符查找其中带有特定标点符号的名称。 或者另一种方式: 但是,它在逻辑上是不正确的。当我筛选“.”/dot character/时,它也会返回带有“I”的标题。 你能帮帮我吗?提前谢谢!

  • 本文向大家介绍sqlalchemy 筛选,包括了sqlalchemy 筛选的使用技巧和注意事项,需要的朋友参考一下 示例 给定以下模型 您可以过滤查询中的列: 对于第一种情况,有一个快捷方式: 可以使用AND关系通过链接filter方法来构成过滤器: 或更灵活地使用重载按位运算符&和|: 不要忘记内括号来处理运算符优先级。

  • 使用指南 引入方式 import { filter } from 'feart'; components: { 'fe-filter': filter, } 代码演示 基础用法 <fe-filter :list="list" :condition="condition" :isFoot="true" confirmText="确认" resetText="重