如何调整正则表达式及Blazor数字输入框禁止输入'e'与小数点
解决方案
一、正则表达式调整
你原有的正则允许空格且支持零字符输入,不符合整数输入的严格要求。要仅允许0-9的数字、禁止小数点和'e',可将正则修改为:
^[0-9]+$
^匹配字符串起始位置[0-9]+匹配一个或多个0-9的数字(确保输入至少包含一个有效数字)$匹配字符串结束位置
该正则会严格限制输入为纯整数,自动排除小数点、'e'和空格。
二、Blazorstrap 输入事件处理
在NumericOnly方法中,调用e.PreventDefault()即可阻止浏览器执行对应按键的默认输入行为,从而禁止输入'e'和小数点。修改后的代码如下:
private void NumericOnly(KeyboardEventArgs e) { // 阻止输入'e'、小数点 if (e.Code == "KeyE" || e.Code == "KeyDot") { e.PreventDefault(); } }
如果还需要禁止正负号(输入框默认允许的'-'或'+'),可扩展判断条件:
if (e.Code == "KeyE" || e.Code == "KeyDot" || e.Code == "KeyMinus" || e.Code == "KeyPlus") { e.PreventDefault(); }
内容的提问来源于stack exchange,提问作者bilpor
相关产品推荐
相关产品推荐

