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

信用卡验证正则表达式

薛枫
2023-03-14

我在Visual C#中为信用卡号码验证器创建正则表达式时遇到一些问题。卡的数字需要用破折号(-)分隔,第一个数字必须是1-9,第二组数字必须是1-3。所以一个例子是2204-1232-9746-5558或1111-1111-1111-1111。

以下是我目前掌握的情况:

    Regex card = new Regex(@"^[1-9][0-9]{2}-[1-3]{3}-[0-9]{3}-[0-9]{3}$");
        string myCard = txtCard.Text;
        Match m  = card.Match(myCard);

        if(m.Success)
        {
            MessageBox.Show("The card number entered is vaild");
        }
        else
        {
            MessageBox.Show("The card number entered is an invaild card number...");
        }

        txtCard.Clear();
        txtCard.Focus();

我尝试的每个卡号都会给出相同的结果,该号码无效。谁能把我引向正确的方向?非常感谢!

共有2个答案

井逸明
2023-03-14

看看查找和验证信用卡号码,其中对该主题进行了深入讨论。那里提出的正则表达式是(在去除连字符和空格之后):

^(?:4[0-9]{12}(?:[0-9]{3})?          # Visa
 |  5[1-5][0-9]{14}                  # MasterCard
 |  3[47][0-9]{13}                   # American Express
 |  3(?:0[0-5]|[68][0-9])[0-9]{11}   # Diners Club
 |  6(?:011|5[0-9]{2})[0-9]{12}      # Discover
 |  (?:2131|1800|35\d{3})\d{11}      # JCB
)$
易扬
2023-03-14

你的问题在正则表达式中。应该是这样的

^[1-9][0-9]{3}-[1-3]{4}-[0-9]{4}-[0-9]{4}$

{4}是[]中应该存在的位数。

你还应该注意,第二个[1-3]对信用卡来说是不正常的。至少从我的银行。

我会把上面的改成这个。您可能需要检查速度,以及这是否完全符合您的要求。

^[1-9][0-9]{3}(-[0-9]{4}){3}$
 类似资料:
  • 主要内容:标签属性,JSF验证整数范围实例标签用于将字符串值验证为所需格式。 以下代码显示如何使用标记。 标签属性 属性 说明 pattern 格式化模式 JSF验证整数范围实例 打开 NetBeans IDE 创建一个Web工程:ValidateRegularExpression,其目录结构如下所示 - 创建以下文件代码,文件:index.xhtml 的代码内容如下所示 - 文件:result.xhtml 的代码内容如下所示 - 文件:

  • 我有以下用于javascript密码验证的正则表达式: 正则表达式规则是: 12-25个字符 至少有一个大写字母 至少有一个小写字母 至少有一个数字 至少有一个特殊字符:!#$%()*,-./:;=?@[]^ `{124;}~ 然而,正则表达式似乎不起作用。它匹配任何字符。我该怎么解决这个问题?

  • 本文向大家介绍php用户注册信息验证正则表达式,包括了php用户注册信息验证正则表达式的使用技巧和注意事项,需要的朋友参考一下 下面这个正则验证用户名的方法原则是这样的用户名必须是由字母带数字带定划线组成了,下面一起来看看例子吧. 1.检查用户名是否符合规定“两位以上的字母,数字,或者下划线”,代码如下: 两位以上的字母,数字,或者下划线:^[a-zA-Z0-9_\x7f-\xff][a-zA-Z

  • 问题内容: 我正在寻找允许我验证json的正则表达式。 我对Regex非常陌生,我知道使用Regex进行解析很不好,但是可以用来验证吗? 问题答案: 是的,可以进行完整的正则表达式验证。 大多数现代正则表达式实现都允许递归正则表达式,该正则表达式可以验证完整的JSON序列化结构。该json.org规范使得它非常简单。 它具有PCRE功能,在PHP中效果很好。应该在Perl中保持不变;并且可以肯定地

  • 问题内容: 我想在PHP中测试正则表达式的有效性,最好在使用前进行测试。这样做的唯一方法是实际尝试a 并查看是否返回吗? 有没有更简单/正确的方法来测试有效的正则表达式? 问题答案: 正如用户 pozs 所说,还应 考虑在测试环境中 放在 preg_match() () 前面, 以防止发出警告或通知。 要验证RegExp只需对其运行 (无需知道您要预先测试的数据) 。如果返回显式false(),则

  • 本文向大家介绍请用正则表达式验证数字相关面试题,主要包含被问及请用正则表达式验证数字时的应答技巧和注意事项,需要的朋友参考一下 /[0一9]*$/