首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用bash验证信用卡号码

使用bash验证信用卡号码
EN

Unix & Linux用户
提问于 2016-05-24 05:14:05
回答 1查看 6.9K关注 0票数 1

我使用了以下正则表达式来检测有效的卡号。

代码语言:javascript
运行
复制
[2-6][0-9]{3}([ -]?)[0-9]{4}([ -]?)[0-9]{4}([ -]?)[0-9]{3,4}([ -]?)[0-9]{0,3}[^a-zA-Z]

但它没有检测到以下情况:

代码语言:javascript
运行
复制
374355011240344
373116614411000

但是,如果我在站点中使用相同的代码:http://www.regexr.com/,所有这些都会被检测到。

这有什么兼容性问题吗?

我想要的是检测任何模式:

  1. 从2,3,4,5,6起
  2. 可由“”或"-“以四位数分隔(2345-3456-2345-2345 /45674556454534345)
  3. 长度可以是13到19

下面是我使用的命令。

代码语言:javascript
运行
复制
for i in * */*;
do
    grep -ocE "[2-6][0-9]{3}([ -]?)[0-9]{4}([ -]?)[0-9]{4}([ -]?)[0-9]{3,4}([ -]?)[0-9]{0,3}[^a-zA-Z]" "$i";
done    `
EN

回答 1

Unix & Linux用户

发布于 2016-05-24 08:28:29

这最好使用luhn算法讨论如何在bash中实现它,可以在这里找到https://codereview.stackexchange.com/questions/95211/validating-a-credit-card-number-using-luhns-algorithm

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/285059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档