当用户提交表单时,我需要确保输入包含至少最少的位数。问题是我不知道输入的格式是什么。数字可能不会连续,可能由字母,标点符号,空格等分开。我不关心其余的字符串。
我想用RegularExpressionValidator检查一下,但我不太清楚如何编写正则表达式。
我想这类似于电话号码正则表达式,但电话号码至少有一些常见的格式。
答案 0 :(得分:12)
以下内容将匹配包含至少n
个数字的输入字符串:
Regex.IsMatch(input, @"(\D*\d){n}");
其中n
是整数值。
一个简短的解释:
\D*
匹配零个或多个非数字字符(\D
是[^0-9]
或[^\d]
的简写; \D*\d
匹配零个或多个非数字字符后跟一个数字; (\D*\d){n}
组,并重复,之前的n
次。答案 1 :(得分:3)
我会接近这样的事情:
Regex.IsMatch(input, @"^(.*[0-9].*){10}$");
用文字表示,这将搜索10个数字,每个数字都被0个或更多个字符包围。由于。*是贪婪的,所以任何额外的数字也会被它们匹配。
无论如何,请查看http://regexlib.com/RETester.aspx如果没有要测试的东西,编写正则表达式真的很难。
答案 2 :(得分:0)
要获得至少n位数,您需要使用以下正则表达式:
(\ d * \ d){N,}
正则表达式(\ D * \ d){n}将恰好匹配n位数。
问候,卡洛。