我需要一个正则表达式,将只接受数字从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;
}
}
这允许我上面提到的字符。
regex ^[0-9]匹配任何以数字开头的内容,包括像“1A”这样的字符串。为了避免部分匹配,在结尾附加$:
^[0-9]*$
它接受任意数量的数字,包括none。要接受一个或多个数字,请将*更改为+。要精确地接受一个数字,只需去掉*。
更新:您混淆了IsMatch的参数。模式应该是第二个参数,而不是第一个参数:
if (!System.Text.RegularExpressions.Regex.IsMatch(textbox.Text, "^[0-9]*$"))
注意:在JavaScript中,\d相当于[0-9],但在。net中,\d默认匹配任何Unicode十进制数字,包括像႒(Myanmar 2)和߉(N'Ko 9)这样的外来数字。除非你的应用程序准备好处理这些字符,否则坚持使用[0-9](或提供RegexOptions)。ECMAScript国旗)。
regex ^[0-9]匹配任何以数字开头的内容,包括像“1A”这样的字符串。为了避免部分匹配,在结尾附加$:
^[0-9]*$
它接受任意数量的数字,包括none。要接受一个或多个数字,请将*更改为+。要精确地接受一个数字,只需去掉*。
更新:您混淆了IsMatch的参数。模式应该是第二个参数,而不是第一个参数:
if (!System.Text.RegularExpressions.Regex.IsMatch(textbox.Text, "^[0-9]*$"))
注意:在JavaScript中,\d相当于[0-9],但在。net中,\d默认匹配任何Unicode十进制数字,包括像႒(Myanmar 2)和߉(N'Ko 9)这样的外来数字。除非你的应用程序准备好处理这些字符,否则坚持使用[0-9](或提供RegexOptions)。ECMAScript国旗)。