有关验证的问题

luck0236 2005-06-01 04:45:54
现在手上有这样一个活儿:用户提交一个表单,然后把表单里填写的内容写入数据库。本质上是很简单的,但这个表单包含的输入内容非常之多,同时要使用的验证规则也很多,比如有的输入框只能输数字,有的只能输入6-10个字符,还有邮件地址,身份证号码,电话号码......等等不下五十个。

问题一:因为一直就没怎么写过验证,所以想请教各位通常的做法是怎样的?
1、用Javascript只进行客户端验证。
2、只进行服务端验证。
3、先用Javascript进行客户端验证,提交后再次进行服务端验证。

问题二:希望各位提供些通用的验证函数,比如邮件地址,电话号码,身份证号码等,多谢。
...全文
57 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerryzhai 2005-06-01
  • 打赏
  • 举报
回复
<form name="guest" id="guest" method="post" action="" onSubmit="return checkform(this);">
jerryzhai 2005-06-01
  • 打赏
  • 举报
回复
只进行客户端验证就可以了.但是提交之后进行特殊字符处理,比如"'"

<SCRIPT LANGUAGE=javascript>
<!--
function checkform(obj){
var checkStr = "";
var regexp = "";
var compareStr = "";
var returnFlag = false;
var checkFlag = true;
var char = "";
var splitResult = new Array();

if (obj.guestname.value == ""){
alert("客户的名称不能为空,请您填写!");
obj.guestname.focus();
return false;
};
if (obj.company.value == ""){
alert("客户所在公司名称不能为空,请您填写!");
obj.company.focus();
return false;
};
if (obj.email.value == ""){
alert("客户的电子邮箱不能为空,请您填写!");
obj.email.focus();
return false;
}else{
checkStr = obj.email.value;
regexp = "@";
splitResult = checkStr.split(regexp);

if (splitResult.length > 1){
checkStr = splitResult[1];
regexp = ".";
splitResult = checkStr.split(regexp);

if (splitResult.length == 1){
alert("您输入的电子邮件地址不正确!请确认后重新输入!");
obj.email.focus();
return false;
}
}else{
alert("您输入的电子邮件地址不正确!缺少电子邮件标志 @ !");
obj.email.focus();
return false;
}

};
if (obj.stationid.value == ""){
alert("客户所在地区的长途区号不能为空,请您填写!");
obj.stationid.focus();
return false;
}else{
checkStr = obj.stationid.value;
compareStr = "0123456789";

for(i=0;i<checkStr.length;i++){
char = checkStr.substr(i,1);
returnFlag = false;
for(j=0;j<compareStr.length;j++){
if (char==compareStr.substr(j,1)){
returnFlag = true;
}
}

if (!returnFlag){
checkFlag = false;
}
}

if (!checkFlag){
alert("客户所在地区的长途区号中含有非法字符,请确认后重新填写!");
obj.stationid.focus();
return false;
}
};
if (obj.tel.value == ""){
alert("客户的办公电话号码不能为空,请您填写!");
obj.tel.focus();
return false;
}else{
checkStr = obj.tel.value;
compareStr = "0123456789";

for(i=0;i<checkStr.length;i++){
char = checkStr.substr(i,1);
returnFlag = false;
for(j=0;j<compareStr.length;j++){
if (char==compareStr.substr(j,1)){
returnFlag = true;
}
}

if (!returnFlag){
checkFlag = false;
}
}

if (!checkFlag){
alert("客户的办公电话号码中含有非法字符,请确认后重新填写!");
obj.tel.focus();
return false;
}
};
if (obj.sex.value == ""){
alert("请选择客户的性别!");
obj.sex.focus();
return false;
};
if (obj.station.value == ""){
alert("客户的公司职务不能为空,请您填写!");
obj.station.focus();
return false;
};
if (obj.address.value == ""){
alert("客户的公司地址不能为空,请您填写!");
obj.address.focus();
return false;
};
if (obj.zip.value == ""){
alert("请填写客户公司地址的邮政编码!");
obj.zip.focus();
return false;
}else{
checkStr = obj.zip.value;
compareStr = "0123456789";

for(i=0;i<checkStr.length;i++){
char = checkStr.substr(i,1);
returnFlag = false;
for(j=0;j<compareStr.length;j++){
if (char==compareStr.substr(j,1)){
returnFlag = true;
}
}

if (!returnFlag){
checkFlag = false;
}
}

if (!checkFlag){
alert("客户的办公电话号码中含有非法字符,请确认后重新填写!");
obj.zip.focus();
return false;
}
};
if (obj.groupid.value == "" && obj.groupname.value == ""){
alert("请选择客户所属组群或填写新的客户组群!");
obj.groupid.focus();
return false;
};
};
-->
</script>
ShiningstarHu 2005-06-01
  • 打赏
  • 举报
回复
去参考参考正则表达式吧。
Javascript客户端验证就可以了

28,404

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧