JavaScript 表单验证实用方法集合
本文提供了一系列实用的 JavaScript 表单验证函数,涵盖字符串长度计算(区分中英文)、非法字符检测、以及针对字母数字、纯中文和纯数字的特定验证逻辑。通过示例代码展示如何限制输入格式,确保用户输入符合预期规范,适用于前端表单交互场景。
字符串长度验证逻辑
以下代码用于实现字符串长度的验证逻辑。
function checkTextLen(textId){
var len = 0;
var checkField=document.getElementById(textId);
var inputstring = checkField.value;
var string_length = inputstring.length;
if (string_length == 0)
{
return 0;
}
for (var i=0;i<string_length;i++)
{
if (inputstring.charAt(i).charCodeAt()>255) len+=2;
else len+=1;
}
return len;
}
function checkTextLength(textId,length,msg){
var textObj =document.getElementById(textId);
if(checkTextLen(textId)>length/1){
alert("["+msg+"]"+"长度最大为"+length+"位,"+"请重新输入!注意:一个汉字占2位");
textObj.focus();
return false;
}else {
return true;
}
}
非法字符检测与特定格式限制
//以下代码用于验证字符串是否包含非法字符,其中中文、英文和数字均被视为合法字符。
function isValidString(textId,errMsg){
szStr = document.getElementById(textId).value;
voidChar = "'\"><`~!@#$%^&\(\)()!¥……??“”‘'*";
for(i = 0 ; i < voidChar.length; i ++){
aChar = voidChar.substring(i, i + 1);
if(szStr.indexOf(aChar) > -1){
alert(errMsg);
return false;
}
}
return true;
}
//以下代码用于验证输入是否仅包含字母、数字和下划线。
function isEnglish(textId,errMsg)
{
s = document.getElementById(textId).value;
//以下正则表达式限制的长度在6到20之间
//var patrn=/^(\w){6,20}$/;
var patrn =/^(\w)*$/;
if (!patrn.exec(s)){
alert(errMsg);
return false
}
return true
}
//以下代码用于验证输入是否仅允许中文字符。
function isChinese(textId,errMsg)
{
s = document.getElementById(textId).value;
var patrn =/[^\u4E00-\u9FA5]/g;
if (patrn.exec(s)){
alert(errMsg);
return false
}
return true
}
//以下代码用于验证输入是否仅允许数字。
function isNumber(textId,errMsg)
{
s = document.getElementById(textId).value;
//以下正则表达式限制的长度在6到20之间
//var patrn=/^(\d){6,20}$/;
var patrn =/^(\d)*$/;
if (!patrn.exec(s)){
alert(errMsg);
return false
}
return true
}
数字输入限制实现
利用 JavaScript 的正则表达式可以控制文本框内仅允许输入数字,即禁止非数字字符。调用方式示例为: onkeyup="onlyNum(this);"
function onlyNum(obj)
{
temp = obj.value;
//注意以下正则表达式的写法,未使用引号包裹。
obj.value = temp.replace(/\D/g,'');
}
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
