c#Regex 0-9和破折号

时间:2012-03-08 15:28:43

标签: c# regex

我有一个信用卡号码,我需要检查它是否有0到9的数字以及任何破折号。

我有以下内容:

    Match match = Regex.Match(CardNumber, "[0-9-]");

    if (match.Success) 

    {

    }

它有效,但想知道我是否遗漏了任何可能无法正常工作的东西。

由于

2 个答案:

答案 0 :(得分:1)

现在它只检查字符串CardNumber中是否至少有一个数字或破折号,因此它会为字符串True返回"hello0!"

如果要验证字符串,使只包含数字和短划线,则需要使用

Match match = Regex.Match(CardNumber, @"^[0-9-]*$");

答案 1 :(得分:1)

作为@Tim所写内容的一个小注释,他的正则表达式将匹配-12--34-。可能你想要的是:

^([0-9]+-)*[0-9]+$

这至少需要一位数。如果要匹配空字符串,请使用

^([0-9]+-)*[0-9]*$

(一个或多个数字的0个或更多“组”加上-和数字的最后“组”