只接受数字(0-9)和NO字符的正则expression式
我需要一个正则expression式,将只接受0-9的数字,没有别的。 没有字母,没有字符。
我认为这将工作:
^[0-9] 甚至
 \d+ 
但是这些是接受的字符:^,$,(,)等
我认为,上面的正则expression式都可以做到这一点,我不知道为什么它接受这些字符。
编辑:
这正是我所做的:
  private void OnTextChanged(object sender, EventArgs e) { if (!System.Text.RegularExpressions.Regex.IsMatch("^[0-9]", textbox.Text)) { textbox.Text = string.Empty; } } 
这是允许我上面提到的字符。
 您的正则expression式^[0-9]匹配以数字开头的任何内容,包括“1A”等string。 为了避免部分匹配,在末尾附加一个$ : 
 ^[0-9]*$ 
 这接受任何数字,包括没有。 要接受一个或多个数字,请将*改为+ 。 要接受一个数字,只需删除* 。 
  更新:你混淆了IsMatch的参数。 模式应该是第二个参数,而不是第一个: 
 if (!System.Text.RegularExpressions.Regex.IsMatch(textbox.Text, "^[0-9]*$")) 
  注意:在JavaScript中, \d等同于[0-9] ,但在.NET中,默认情况下\d与任何Unicode十进制数字匹配,包括像2(缅甸2)和߉(N'Ko 9)等异国情况的票价。 除非你的应用程序准备处理这些字符,否则坚持[0-9] (或提供RegexOptions.ECMAScript标志)。