我需要帮助形成正则表达式,将用户输入限制为只有数字,最多只能出现10次。
我有正则表达式,只是为了保持数字的输入,但我不能将其限制为最多10个。
这就是我所拥有的:
^(0|[1-9][0-9]*)$
我可以接受负数,小数和0。有什么建议吗?
答案 0 :(得分:3)
^\s*([0-9)+){0,10}\s*$
这基本上说我想要0到10个东西,其中每个东西都是数字。我在两侧添加了\ s *以允许用户在其号码之前或之后放置空格。这会接受像
这样的事情10 1231231 1231 1231 23112 123123
如果你真正想要的只是一个数字,最多只有10位数,那就更容易了:
^\s[0-9]{1,10}\s$
答案 1 :(得分:0)
你可以试试这个:
^(?<=\s)(\-?[\d]{1,10}(?=\s))$
答案 2 :(得分:0)
你正在寻找的正则表达式是这样的:
/(?=^[-+]?\d*\.?\d+$)^.{1,10}$/
请注意,此正则表达式允许输入的最大长度为10,其中包括开头的可选+
或-
符号以及小数点.
。
答案 3 :(得分:0)
失败,因为它有11位
Debug.WriteLine(Regex.IsMatch("12345678901", @"^\d{1,10}$").ToString());
在您澄清之前发布上述答案您需要最多10个由空格分隔的数字。
测试了已接受的答案,在.NET Regex中,它失败了。 即使修复语法错误,它仍然不会按空格解析
试一试
Debug.WriteLine(Regex.IsMatch(" 12345 678901 12 ", @"^\s*([+-]?\d+)(\s+[+-]?\d+){1,9}\s*$").ToString());