我需要验证一个帐号。它应该只有数字并且有9或10个字符。 我尝试这样做:正则表达式不工作,因为我需要
return Regex.IsMatch(id, "[0-9]{9,10}");
但这不能正常工作,因为它返回true的情况下,号码为“1234567890blah”。 你能帮忙,因为我用正则表达式不好吗?
谢谢。
我需要验证一个帐号。它应该只有数字并且有9或10个字符。 我尝试这样做:正则表达式不工作,因为我需要
return Regex.IsMatch(id, "[0-9]{9,10}");
但这不能正常工作,因为它返回true的情况下,号码为“1234567890blah”。 你能帮忙,因为我用正则表达式不好吗?
谢谢。
您需要指出的数字必须是整个字符串。在开始处放^
以指示它必须是字符串的开始,并且表示它必须是结束的。
return Regex.IsMatch(id, "^[0-9]{9,10}$");
请参阅Regular Expression Anchors了解更多详情。
修改使用(添加开始和结束卡拉科特,^和$卡拉科特)
return Regex.IsMatch(id, "^[0-9]{9,10}$");
这是正则表达式的问题。有更简单和更清晰的解决方案。
string acct = "1234567890";
long temp;
return (acct.Length == 9 || acct.Length == 10)
&& long.TryParse(acct, out temp);
这不是“正则表达式的问题”,它的正则表达式使用不正确。正则表达式是一个非常精确的工具。 – 2012-07-30 15:24:17
谢谢和其他人给出了正确的答案。它确实有效。 – 2012-07-30 15:20:26