JavaScript 表单验证实用方法集合

作者:闭包旅人时间:2026-10-24 03:23:30浏览:606

本文提供了一系列实用的 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,'');


}
作者最新文章