您的正则表达式
^[0-9]匹配以数字 开头的 任何内容,包括“ 1A”之类的字符串。为避免部分匹配,请
$在末尾附加a :
^[0-9]*$
这可以接受任意数量的数字,包括无数字。要接受一个或多个数字,请将更改
*为
+。要只接受一位数字,只需删除
*。
更新: 您混淆了参数
IsMatch。模式应该是第二个参数,而不是第一个:
if (!System.Text.Regularexpressions.Regex.IsMatch(textbox.Text, "^[0-9]*$"))
注意:
在Javascript中,
d它等效于
[0-9],但在.NET中,
d默认情况下,它会匹配任何Unipre十进制数字,包括诸如႒(缅甸2)和߉(N’Ko
9)之类的奇特票价。除非您的应用程序准备好处理这些字符,否则请坚持使用
[0-9](或提供RegexOptions.ECMAscript标志)。


![正则表达式,仅接受数字(0-9)和无字符[重复] 正则表达式,仅接受数字(0-9)和无字符[重复]](http://www.mshxw.com/aiimages/31/576101.png)
