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