我需要一个只接受0-9的数字而不接受其他任何数字的重码。没有字母,没有字符。
我想这是可以的。
^[0-9]
或甚至
\d+
但这些都是接受的字符。^,$,(,),等等
我以为上面的两个词组都能起到作用,我不知道为什么它接受这些字符。
编辑。
这正是我正在做的事情。
private void OnTextChanged(object sender, EventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch("^[0-9]", textbox.Text))
{
textbox.Text = string.Empty;
}
}
这是让我上面提到的人物。
你的重码^[0-9]
可以匹配任何*以数字开头的内容,包括像"1A"这样的字符串。为了避免部分匹配,在结尾处添加一个$
。
^[0-9]*$
这可以接受任何数量的数字,包括没有数字。要接受一个或多个数字,将 ""改为 "+"。如果要接受一个数字,只需去掉 ""。
更新:你混淆了`IsMatch'的参数。模式应该是第二个参数,而不是第一个。
if (!System.Text.RegularExpressions.Regex.IsMatch(textbox.Text, "^[0-9]*$"))
注意:在JavaScript中,d
相当于[0-9]
,但在.NET中,d
默认匹配任何Unicode十进制数字,包括像႒(缅甸2)和߉(N'Ko 9)这样的奇特票价。除非你的应用程序准备处理这些字符,否则坚持使用[0-9]
(或提供RegexOptions.ECMAScript标志)。