正则表达式不能正常工作

时间:2012-07-30 15:02:48

标签: c# regex

我需要验证一个帐号。它应该只有数字,有9或10个字符。 我试过这个:

return Regex.IsMatch(id, "[0-9]{9,10}");

但这不能正常工作,因为如果数字是“1234567890blah”,它返回true。 你能帮忙吗,因为我对正则表达式不是很好吗?

感谢。

3 个答案:

答案 0 :(得分:8)

您需要指明数字必须是整个字符串。将^放在开头,表示它必须是字符串的开头,$表示它必须是结束。

return Regex.IsMatch(id, "^[0-9]{9,10}$");

有关详细信息,请参阅Regular Expression Anchors

答案 1 :(得分:4)

使用(添加开始和结束字符,^和$字符)

进行修改
return Regex.IsMatch(id, "^[0-9]{9,10}$");

答案 2 :(得分:2)

这是正则表达式的问题。有更简单,更清晰的解决方案。

string acct = "1234567890";
long temp; 

return (acct.Length == 9 || acct.Length == 10)
    && long.TryParse(acct, out temp);