我需要验证一个帐号。它应该只有数字,有9或10个字符。 我试过这个:
return Regex.IsMatch(id, "[0-9]{9,10}");
但这不能正常工作,因为如果数字是“1234567890blah”,它返回true。 你能帮忙吗,因为我对正则表达式不是很好吗?
感谢。
答案 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);