2012-03-08 51 views
0

我有一个信用卡号码,我需要检查它是否有数字从0到9,还有任何破折号。c#正则表达式0-9和破折号

我有以下几点:

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

    if (match.Success) 

    { 

    } 

它的工作原理,但想知道如果我错过了什么,可能无法使其发挥作用。

感谢

+0

您应详细说明一点上也许你的要求。这个问题现在非常模糊...... – 2012-03-08 15:35:00

回答

1

现在,只检查是否至少有一个数字或破折号串CardNumber里面,所以它的字符串"hello0!"返回True

如果你想验证字符串,所以它只有数字和破折号,则需要使用

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

由于小记什么@Tim写道,他的正则表达式匹配-12--34-。可能你想要的是:

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

这将需要至少一个数字。如果你想空字符串匹配,使用(一个或多个数字0以上的“团体”加一个-和数字的最后“集团”)

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

相关问题