JS控制文本框输入限制:特殊字符、数字与中英文过滤方案
作者:函数茶馆时间:2026-10-22 02:40:21浏览:349
本文汇总了多种前端JavaScript实现方案,用于限制HTML文本框的输入内容。通过直接在标签内绑定事件或使用函数调用,可实现禁止特殊字符、仅允许数字、英文、中文及其组合的过滤效果。方案涵盖即时替换与按键拦截两种机制,帮助开发者快速解决表单验证中的非法字符输入问题。
在前端开发过程中,经常需要验证用户输入数据的合法性。以下整理了若干实用的JavaScript实现技巧,供开发者参考使用,也欢迎补充更多方案。
HTML标签内直接绑定过滤方法
第一种方法是在HTML标签中直接绑定处理函数:
JS 控制不能输入特殊字符
<input type="text"class="domain"onkeyup="this.value=this.value.replace(/[^u4e00-u9fa5w]/g,'')";
this.value=this.value.replace(/[^u4e00-u9fa5w]/g,'')
JS 控制文本框只能输入数字
<input onkeyup="value=value.replace(/[^0-9]/g,'')" onpaste="value=value.replace(/[^0-9]/g,'')" oncontextmenu = "value=value.replace(/[^0-9]/g,'')">
JS 控制文本框只能输入数字、小数点
<input onkeyup="value=value.replace(/[^\0-9\.]/g,'')" onpaste="value=value.replace(/[^\0-9\.]/g,'')" oncontextmenu = "value=value.replace(/[^\0-9\.]/g,'')">
JS 控制文本框只能输入英文
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z]/g,'')">
JS 控制文本框只能输入英文、数字
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')">
JS 控制文本框只能输入中文
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onpaste="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" oncontextmenu = "value=value.replace(/[^\u4E00-\u9FA5]/g,'')">
JS 控制文本框只能输入中文、英文、数字
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')">
JS 控制文本框只能输入中文、英文、数字、空格
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\ ]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\ ]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\ ]/g,'')">
JS 控制文本框只能输入中文、英文、数字、小数点
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')">
输入后即时清除特殊字符
第二种方法是在用户输入后立即清除非法字符:
//验证输入框内不能输入特殊字符,输入就立刻清除
function cleanSpelChar(th){
if(/["'<>%;)(&+]/.test(th.value)){
$(th).val(th.value.replace(/["'<>%;)(&+]/,""));
}
}
输入前拦截特殊字符判断
第三种方法是通过判断特殊字符来禁止输入:
//验证输入框内不能输入特殊字符,输入前先作判断
function processSpelChar(){
var code; var character;
if(document.all){
code = window.event.keyCode;
}else{
code = arguments.callee.caller.arguments[0].which;
}
var character = String.fromCharCode(code);
var txt = new RegExp(/["'<>%;)(&+]/);
if(txt.test(character)){
if(document.all){
window.event.returnValue = false;
}else{
arguments.callee.caller.arguments[0].preventDefault();
}
}
}
以上即为本文分享的全部内容,希望这些内容能对各位的学习或工作有所帮助,同时也欢迎大家继续支持本站。
作者最新文章
JS大数值转字符串出现科学计数法怎么办
2026-11-05 17:09:21
JS split切割后出现空字符串怎么过滤
2026-11-05 16:00:30
在 React 或 Vue 项目中封装使用 JS 节流防抖
2026-11-05 15:27:29
JavaScript中怎么将带小数的字符串转为整数?
2026-11-05 14:32:38
怎么用JavaScript策略模式重构电商促销计算逻辑?
2026-11-05 14:01:09
