ASP.NET TextBox如何设置仅允许输入数字和空格的正则验证规则
ASP.NET Web Forms 多行文本框数字+空格校验修正方案
你原先的正则表达式存在3处逻辑错误,导致校验不生效:
- 字符集定义错误:
[0-100' ']属于无效字符集写法,方括号内仅支持单个字符或连续字符范围,0-100会被识别为「0、1」两个合法字符,加单引号包裹空格反而会把单引号也纳入允许输入的字符范围 - 长度规则倒置:
{100,}表示最少输入100个字符,和你需要的最多100位的要求完全相反 - 缺少首尾限定:正则未加
^、$首尾匹配符,只要字符串中间有一段符合规则就会通过校验,无法拦截首尾的非法字符
正确配置代码
直接替换你的控件代码即可:
<asp:TextBox ID="txtCopied" runat="server" TextMode="MultiLine" Height="200px" Width="617px" /> <asp:RegularExpressionValidator ID="rvDigits" runat="server" ControlToValidate="txtCopied" ErrorMessage="仅允许输入数字和空格,总长度最多100位" ValidationGroup="valGroup" ForeColor="Red" ValidationExpression="^[0-9 ]{1,100}$" />
可选调整项
- 若允许文本框留空,把正则中的
{1,100}修改为{0,100} - 若需要支持换行输入,把正则中的字符集修改为
[0-9 \r\n]即可
内容的提问来源于stack exchange,提问作者Sky
相关产品推荐
相关产品推荐

