You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET中如何禁止在TextBox中粘贴特殊字符?

实现禁止粘贴特殊字符的方案

你可以通过添加onpaste事件拦截粘贴操作,验证粘贴内容是否符合允许的字符规则,具体修改如下:

方式1:内联验证(无需额外JS函数)

直接把验证逻辑写在onpaste属性中,和输入限制的正则保持一致:

@Html.TextBoxFor(model => model.GroupName, new { 
    @class = "form-control", 
    @required = "required", 
    onkeypress = "return /[0-9a-zA-Z ]/i.test(event.key);",
    onpaste = "return /^[0-9a-zA-Z ]*$/i.test((event.clipboardData || window.clipboardData).getData('text'));"
})

方式2:独立JS函数(更易维护)

如果需要复用验证逻辑,可单独定义JS函数,再绑定到onpaste事件:

第一步:修改TextBoxFor代码

@Html.TextBoxFor(model => model.GroupName, new { 
    @class = "form-control", 
    @required = "required", 
    onkeypress = "return /[0-9a-zA-Z ]/i.test(event.key);",
    onpaste = "return validatePaste(event);"
})

第二步:添加JS验证函数

function validatePaste(event) {
    // 获取剪贴板中的文本内容
    const pastedContent = (event.clipboardData || window.clipboardData).getData('text');
    // 验证内容是否仅包含数字、字母和空格
    const allowedChars = /^[0-9a-zA-Z ]*$/i;
    // 符合规则则允许粘贴,否则阻止
    return allowedChars.test(pastedContent);
}

说明

两种方式都是通过正则表达式/^[0-9a-zA-Z ]*$/i验证内容,确保粘贴的文本只包含数字、大小写字母和空格,不符合规则的粘贴操作会被直接阻止,和你已有的输入限制逻辑保持一致。

内容的提问来源于stack exchange,提问作者sellavsert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:43:26