4

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

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

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

谢谢。

4

3 回答 3

8

您需要指出数字必须是整个字符串。放在^开头表示它必须是字符串的开头并$表示它必须是结尾。

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

有关更多详细信息,请参阅正则表达式锚

于 2012-07-30T15:05:37.523 回答
4

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

return Regex.IsMatch(id, "^[0-9]{9,10}$");
于 2012-07-30T15:05:33.267 回答
2

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

string acct = "1234567890";
long temp; 

return (acct.Length == 9 || acct.Length == 10)
    && long.TryParse(acct, out temp);
于 2012-07-30T15:10:04.087 回答