Discover 信用卡的正则表达式

2023-11-25

我已读完这个问题,但对于 Discover 卡,起始数字是6011, 622126-622925, 644-649, 65而不仅仅是6011, 65. (Source)

对于发现卡,我从该问题中选择了这个正则表达式^6(?:011|5[0-9]{2})[0-9]{12}$

我修改它来覆盖6011, 644-649& 65但对于622126-622925,由于我的正则表达式技能很差,构建正则表达式很困难。

到目前为止我有这个正则表达式6(?:011|5[0-9]{2}|[4][4-9][0-9]|[2]{2}[1-9])[0-9]{2}$,但它只检查622[1-9]**.

我如何修改它,以便它只接受之间622126-622925 for 622*** case?


这是你的正则表达式(demo):

^6(?:011\d{12}|5\d{14}|4[4-9]\d{13}|22(?:1(?:2[6-9]|[3-9]\d)|[2-8]\d{2}|9(?:[01]\d|2[0-5]))\d{10})$

不用说,我不会说这很漂亮或易于维护。我建议将数字解析为整数并使用您的编程语言进行检查。

您还应该使用卢恩算法检查信用卡号码是否有效,同时您可以理论上用正则表达式来做这件事,它会比这糟糕很多倍。


请允许我向你展示我是如何一步步走向这个怪物的。首先,以下是匹配每个范围的方法:

6011        # matches 6011
65          # matches 65
64[4-9]     # matches 644-649
622(1(2[6-9]|[3-9]\d)|[2-8]\d{2}|9([01]\d|2[0-5]))  
            # matches 622126-622925

现在,您想要匹配其余数字:

6011\d{12}        # matches 6011 + 12 digits
65\d{14}          # matches 65 + 14 digits
64[4-9]\d{13}     # matches 644-649 + 13 digits
622(1(2[6-9]|[3-9]\d)|[2-8]\d{2}|9([01]\d|2[0-5]))\d{10}
                  # matches 622126-622925 + 10 digits

现在您可以组合所有四个,并添加行锚点的开始和结束:

^(                  # match start of string and open group
 6011\d{12}|        # matches 6011 + 12 digits
 65\d{14}|          # matches 65 + 14 digits
 64[4-9]\d{13}|     # matches 644-649 + 13 digits
 622(1(2[6-9]|[3-9]\d)|[2-8]\d{2}|9([01]\d|2[0-5]))\d{10}
                    # matches 622126-622925 + 10 digits
)$                  # close group and match end of string

上面的最终产品是之前的正则表达式的稍微压缩的版本,我还制作了非捕获组(这就是那些?:是给)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Discover 信用卡的正则表达式 的相关文章

随机推荐

  • 从视频url获取视频缩略图

    是否可以从视频 URL 中获取缩略图 我需要列表视图中的视频缩略图 是的 可以使用 ThumbnailUtils 获取视频的缩略图 FileOutputStream out File land new File Environment ge
  • Mapstruct LocalDateTime 到 Instant

    我是 Mapstruct 的新手 我有一个模型对象 其中包括LocalDateTime类型字段 DTO 包括Instant类型字段 我想要地图LocalDateTime将字段键入Instant类型字段 我有TimeZone传入请求的实例 像
  • 使用 javamail 的 IMAP 访问邮件 Office 365

    我正在尝试使用 JavaMail 1 4 api 读取电子邮件帐户 Office365 的文件夹中的电子邮件 我的代码是 public static void main String argv throws Exception Get a
  • FFMPEG:如何以高关键帧间隔对可搜索视频进行编码

    我正在寻找一个 ffmpeg 命令 如果我在 requestAnimationFrame 上控制视频以进行鼠标控制 则该命令最适合使用 基本上 它需要快速搜索并以高关键帧间隔进行编码 我似乎无法确定哪些参数有助于快速搜索和高关键帧 谢谢 约
  • GCD 和线程过多的问题

    我有一个图像加载器类 它提供 NSURL 加载和来自网络的图像并执行完成块 代码其实很简单 void downloadImageWithURL NSString URLString completion BELoadImageComplet
  • 解析 NSURL 查询属性

    我有一个像这样的网址myApp action 1 parameter 2 secondparameter 3 通过属性查询 我得到了以下部分URL parameter 2 secondparameter 3 有什么方法可以轻松地将其放入NS
  • 如何向一个号码发送多条短信

    我想通过使用复选框选择发送多条短信 仅选定的短信内容 即它们的正文需要发送新的消息正文到我预定义的 121 但下面的代码 无论我是否选择 否 121 它都会发送完整的收件箱消息 主要活动代码 public class MainActivit
  • Tomcat如何处理多个请求

    我知道创建网络应用程序 但我有一个基本的疑问 我很抱歉问了非常愚蠢的问题 但想消除我的疑虑 Tomcat容器如何处理请求 我的意思是当我发送请求时home jsp页面然后我得到的响应为home jsp仅页面而不是注册 jsp该页面同时可能是
  • 每当视图寻呼机中的选项卡发生更改时如何更新列表

    在我的应用程序中 我使用视图寻呼机来使用导航选项卡 我已经能够使用发布的代码成功绘制选项卡 https github com codepath android guides wiki Sliding Tabs with PagerSlidi
  • Gson 和抽象超类:反序列化问题

    假设有一个abstract类 说A 以及两个非抽象子类 例如A1 and A2 我想使用 json 格式 反序列化 它们GSON库 例如 我得到一个数组A对象 int n A list new A n A 0 new A1 A 1 new
  • 使用 CLI 通过 HTTPS 运行 Flask 开发服务器

    我正在尝试使用 HTTPS 来提供 Flask 应用程序flask命令 我可以使用以下方法来做到这一点app run通过通过ssl context争论 但我不知道如何在 CLI 上执行此操作 flask run host 0 0 0 0 p
  • 如果多个线程同时修改 NSMutableArray 会发生什么? (如果它包含的对象保留在其他地方)

    我有一个包含许多对象的 NSMutableArray 如果在我使用 NSMutableArray array With Array some Array 复制数组时对数组进行更改 会发生什么情况 例如 如果在复制时从数组中删除一个对象 我不
  • AngularJS limitTo 过滤对象上的 ngRepeat(像字典一样使用)

    是否可以使用limitTo过滤在ngRepeat指令重复对象的属性而不是数组中的项目 我知道官方文档说输入limitTo需要是数组或字符串 但想知道是否有办法让它发挥作用 这是示例代码 li li And scope phones dict
  • jQuery UI 自动完成文本框中的多个值

    我需要一种简单的自动完成搜索功能 但也允许用户输入多个值 我正在使用 jQuery UI 的自动完成小部件 http jqueryui com autocomplete 到目前为止 我已将源设置为仅搜索建议中的第一个字母 我现在想添加的是用
  • 如何获取 FxCop 中 callvirt IL 指令实际调用的方法

    我仍在努力让我的 FxCop 规则发挥作用 作为其中的一部分 我需要弄清楚方法调用哪些方法 以前我用的是CallGraph CallersFor 相反地做 无论如何这是我的最终目标 但是它似乎有我下面描述的相同问题 作为使用的替代方案Cal
  • 如何在asp.net中使用__doPostBack函数

    我正在尝试使用 doPostBack函数 这样我就可以强制我的页面在页面加载时进行后包 但我在理解上遇到一些困难 当我在网上查看示例时 单击按钮时 我想发回帖子 但不确定如何完成后面代码中的代码 这是我到目前为止所拥有的 这是我的按钮
  • 0x80040154 的 COMException 是否总是“类未注册”?

    0x80040154 的 System Runtime InteropServices COMException 是否始终意味着该类未注册 我收到一个 COMException 其中显示 由于以下错误 检索具有 CLSID 29131539
  • “npm ci”抛出异常:无法读取未定义的属性“长度”

    我在本地环境和 CircleCI 中都遇到了这个异常 gt email protected postinstall home vallo project node modules core js gt node e try require
  • nginx - 基于请求标头的响应

    我安装了 nginx 1 0 8 这是我的问题 我有 2 个文件 file1 js and file2 js 请求的路径是这样的 www mysite com files dir user file js 如果请求的标头 X Header
  • Discover 信用卡的正则表达式

    我已读完这个问题 但对于 Discover 卡 起始数字是6011 622126 622925 644 649 65而不仅仅是6011 65 Source 对于发现卡 我从该问题中选择了这个正则表达式 6 011 5 0 9 2 0 9 1