现在的位置: 首页 > 综合 > 正文

[转] 最实用的js表单验证方法

2012年06月16日 ⁄ 综合 ⁄ 共 1668字 ⁄ 字号 评论关闭

        每次都要用到表单验证的时候,就在到处找东西,而网上的很多都不见的好用。自己终于累计了这些方法,在自己的程序中使用了的一些方法,肯定是好用的,主要使用了简单的正则表达式进行判断。如果有bug,欢迎提出来。

//下面验证的是长度
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

}

使用js的正则表达式用来控制不允许在文本框里面输入非数字,也就是只允许输入数字。调用方法 : onkeyup="onlyNum(this);"

function onlyNum(obj)

{

temp = obj.value;

//注意下面的正则表达式的写法,没有用引号括起来。。

obj.value = temp.replace(/\D/g,'');

}

抱歉!评论已关闭.