随便来介绍一下一个比较新的验证字符串的方法,这就是在javascript 1.2中引入的正则表达式,它可以在一段文本中匹配一个单词,一个数字和其他任何字符串。废话少说,坚持我们一贯原则,用事例来说明新问题,看一看用正则表达式来写isInt()函数:
function isInt(elm) {
var pattern=/[^0-9]/;
if (parttern.test(elm.value)) {
return false;
}
else {
return true;
}
}
说明:
首先定义一个叫parttern的变量,用来表示我们想匹配的正则表达式。这里,我们检索不在0~9之间的数字。如果找到,就证明这个表但元素不包含无符号整数。
“/”表示表达式的开始和结尾,就像标示一个字符串开始和结尾的引号一样。
“[ ]”表明我们指定的是一个范围。
“^”表示我们将范围取反。
test()是一个方那么parttern.test(elm.value)的意思就是传递参数过来的表单元素中有不是在0~9之间的数。也就是为true。
其实正则表达式,的关键是正确定义模式:
我们来看看isAlpha()中:
var pattern=/[^a-zA-Z]/;
当你想要匹配一个具体的模式时,正则表达式是很有用的
var pattern=/[0~9]{3}-[0~9]{3}-[0-9]{4}/;
就只介绍一下“{}”:他里面的数字表示要匹配的字符长度,也就是几个。而它后面的“-”表示一个实际的连字符。
isEmail():
var pattern=/^[a-zA-Z0-9\-]+\@[a-zA-z0-9\-\.]+\.([a-zA-z]{2,3})$/;
这个就复杂多了,但也不怎么讲了,有想了解的自己找来参考的资料看一看吧。
我们接下来要讲的是使用数组:
我们在别的编程语言中都早已接触过数组,这里就不用多解释,先来看看在javascript中是如何定义数组咯!
var people=new Array();
这里创建了一个叫做people的新数组,数组的每个元素可以通过方括号“[]”中的数字访问。
当需要给people数组的第一个元素赋值时,只要把它当做普通变量就可以了:
people[0]="my data";
现在来看一下在网页中随机显示一句话的代码:
<html>
<head>
<title>Random Tagline Generator</title>
<script language="JavaScript">
//Create the array
var taglin=new Array();
tagline[]="1";
tagline[]="2";
tagline[]="3";
tagline[]="4";
//Random number generator
function randomNumber(n) {
number=Math.floor(Math.random()*(n+1));
return number;
}
</script>
</head>
<boby>
<script language="JavaScript">
//Display then random tagline
document.write(tagline[randomNumber(tagline.length-1)]);
</script>
</body>
</html>
randomNumber(n)叫做随机数生成器,用到了两个javascript内部函数来产生一个0和参数n之间的随机数。
他产生一个0.0~1.0之间的随机数。为了变成0~n之见的,还要乘以n+1,然后用另一个函数Math.floor()向下就近取整数。
tagline.length得到的是数组的长度。
这个例子就讲到这里。我头有点晕,今天没睡好哈。
我们不仅可以随机化单词,还可以应用到图象,java小程序,其他的HTML相关对象以及这些任何的组合。只要把这些目标插入到数组,然后正确使用数组元素就可以了。
下一讲我们将讲一个正确显示日期的例子,好好等待吧! |