JS控制文本框输入限制:特殊字符、数字与中英文过滤方案

作者:函数茶馆

时间:2026-10-22

浏览:348

本文汇总了多种前端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();    
 }   
} 
}

以上即为本文分享的全部内容,希望这些内容能对各位的学习或工作有所帮助,同时也欢迎大家继续支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章