202.11.13

一、今日学习内容:

 对输入信息进行验证
2.4.1 JavaScript 语言
在 Web 应用中需要在客户端执行的功能可以使用 JavaScript 语言编写,在使用的时候
需要把 JavaScript 代码放在下面的两个标识之间:
<script language="JavaScript">
相关 JavaScript 代码
</script>
JavaScript 代码与 Java 代码比较类似,但是更灵活一些。本书只介绍与客户端验证相关
的 JavaScript 代码,如果读者想更深入地学习,可以参考专门的书籍。
通常会把对不同内容的验证写成不同的方法,方法的格式如下:
function 方法名(参数)
{
// 方法体
}
不需要写方法的返回值类型,但是方法可以有返回值,并且可以是各种类型的返回值。
方法的参数类型也可以不写。把方法放在 JavaScript 的开始标识和结束标识之间即可。
第 2 章 输 入 39
2.4.2 使用表单数据
要对用户输入的信息进行验证,需要先获取输入信息。每个表单元素都属于一个 form
表单,要获取信息,需要先获取 form,然后访问表单元素的值。
有两种方式可以获取 form表单。
第一种方式通过 document 对象获得 form:
form = document.form1
其中,form1 是表单元素的名字。
另一种方式是在调用验证方法的时候把 form作为参数来获得 form,本章实例中使用的
就是这种方式:
isValidate(form1)
其中,form1 就是表单的名字。
得到 form之后,获取表单元素的值的代码如下:
form.userid.value
其中,userid 是表单元素,value 是该表单元素的值。
2.4.3 调用验证方法
验证通常在表单提交之前进行,可以通过按钮的 onClick 事件,也可以通过 form 表单
的 onSubmit 事件来完成。
本章实例是通过 form表单的 onSubmit 事件来完成的:
<form name="form1" action="register_confirm.jsp" method="post"
onSubmit="return isValidate(form1)">
如果要通过按钮的 onClick 事件完成,可以使用下面的代码:
<input type="button" value="提交" onClick="JavaScript:isValidate()">
如果使用这个方法,在验证通过之后,需要编写提交表单的代码:
document.form1.submit();
2.4.4 提示用户信息
在验证失败之后通常需要提示用户错误信息,可以通过下面的代码完成:
alert("地址长度大于 50 位!");
当使用 alert 提示错误信息时,参数是要显示的错误信息。上面就是当用户输入的地址
信息的长度大于 50 的时候提示用户的信息。
如果验证失败,则通常会把光标放在相应的输入框中,可以使用下面的代码:
form.address.focus();
如果地址的长度不合适,就会把光标放在地址输入框中。
2.4.5 常用的方法
在验证过程中,有些方法经常被使用,这些方法主要是与字符串处理相关的方法。假
设 str 是一个字符串,下面列出常用的对 str 的处理方法:
40 Java Web 程序设计基础教程
str.length,表示字符串的长度。
str.charAt(i),获取字符串中第 i 个字符,i 从 0 开始。
str.indexOf(c),查找某个字符的位置,返回值是该字符第一次出现的位置,位置编号从
0 开始。如果没有找到,则返回 - 1。
str.substring(index1,index2),获取子串,第一个参数表示开始位置,第二个参数表示结
束位置,子串包括第一个参数,不包括第二个参数。如果只有一个参数,则获取从该参数
开始到字符串结束的子串,此时方法就变成 str.substring(index)。
str==另一个字符串,判断 str 与另一个字符串是否相同。
下面是一些常用的验证。
1. 非空验证
// 验证是否是空
function isNull(str)
{
if(str.length==0)
return true;
else
return false;
}
2. 字符串长度验证
// 验证是否满足最小长度
function minLength(str,length)
{
if(str.length>=length)
return true;
else
return false;
}
// 判断是否满足最大长度
function maxLength(str,length)
{
if(str.length<=length)
return true;
else
return false;
}
3. 日期验证
// 判断是否是日期,日期的格式为 1988-1-1
第 2 章 输 入 41
function isDate(date)
{
// 查找分隔符
index1 = date.indexOf("-");
// 如果分隔符不存在,则不是合法的时间
if(index1 == -1)
return false;
// 获取时间中的年
year = date.substring(0,index1);
// 获取时间中的剩下部分
date = date.substring(index1+1);
// 查找第二个分隔符
index1 = date.indexOf("-");
// 如果不存在第二个分隔符,则不是合法的时间
if(index1 == -1)
return false;
// 获取时间中的月份
month = date.substring(0,index1);
// 获取时间中的日
day = date.substring(index1+1);
// 判断是否是数字,如果不是则不是合法的时间
if(isNumber(year) && isNumber(month) && isNumber(day))
{
// 判断基本范围
if(year<1900 || year>9999 || month<1 || month >12 || day<1)
return false;
// 判断 31 天的月
if((month==1 || month==3 || month==5 || month==7
|| month==8 || month==10 || month==12) && day>31)
return false;
// 判断 30 天的月
if((month==4 || month==6 || month==9 || month==11)
&& day>30)
return false;
// 如果是 2 月,判断是否为闰年
if(month==2)
{
if(year%400==0 || (year%4==0 && year%100!=0))
{
if(day>29)
42 Java Web 程序设计基础教程
return false;
}else
{
if(day>28)
return false;
}
}
}
else
return false;
return true;
}
4. 数字验证
// 判断是否是整数
function isNumber(str)
{
for(i=0;i<str.length;i++)
{
// 每一位都是 0~9 的数字,如果是第 1 位,则可以是“-”号
if(str.charAt(i)>='0' && str.charAt(i)<='9'
|| str.charAt(i)=="-" && i==0)
continue;
else
return false;
}
return true;
}

二、遇到的问题:

最后的这几种验证不清楚。

三、明日学习计划:
继续学习javaweb。

原文地址:https://www.cnblogs.com/marr/p/14176501.html