我想要一个正则表达式,只允许从1到999的数字。它应该限制所有其他字符符号和所有。
我试过了^\d+$
。但它不起作用
答案 0 :(得分:4)
^[1-9][0-9]{0,3}$
(从1到9的数字,后跟从0到9的0到3位数字)。
答案 1 :(得分:1)
你真的不需要正则表达式,
所以非正则表达方式
string myNum = "5000";
int num;
if (Int32.TryParse(myNum, out num) && (num >= 1 && num <= 9999))
{
//condition validated
}
和
Regex Way
bool foundMatch = Regex.IsMatch(myNum, "^(?:[1-9][0-9]{0,3})$");
答案 2 :(得分:1)
您想使用字符类。
^[1-9][0-9]{,3}$
答案 3 :(得分:0)
您可以使用
^0*(?!\d{5,}$)(?!0+$)\d+$
但最好将字符串解析为int,然后比较值..
遵循 KISS 原则