【发布时间】:2011-01-19 19:47:35
【问题描述】:
这对于有经验的正则表达式编写者来说应该很简单,但我写的不多,所以....
我想对 C# MVC 表单上的文本框进行输入验证,可能使用 javascript 或 jquery。
我想将输入限制为逗号分隔的整数列表。该列表必须以 >= 0 的数字开头,后跟逗号,然后重复此模式。该列表可能以逗号结尾,也可能不以逗号结尾:
1,2,444,5, - 传球
1,2,444,5 - 传球
,1,2,444,5, - 失败
,1,2,444,5 - 失败
1,,2,444,5 - 失败
1,,2,444,5,, - 失败
我写了这个:^([0-99],?)+$ 并在 regexlib.com 上对其进行了测试,它似乎可以工作,但测试器返回 2 个匹配项,我不确定这意味着什么。由于它在上面的失败案例中失败,我认为简单的输入验证是安全的。有更好的模式吗?
不太重要的问题:为什么在 0-99 范围内允许 444?
【问题讨论】:
-
它允许 444,因为您将
,设为可选。所以它可以先匹配 44,然后是 4。 -
实际上我认为它匹配
4然后4然后4,。它不会将99视为“九十九”,而是将其视为“9或9”。 -
@Beta 将其视为
0-9或9,这是多余的(与只是说[0-9]相同)。
标签: regex asp.net-mvc-2 validation csv