正则表达式验证表单
定义一个函数,需要前三个参数,其余7个是可选的
如果参数没有传值则为"undefine",这代表对象不存在。在判断语句中,系统可以把它转换为布尔值"false"。
函数参数中可以传递函数
若你不清楚函数有多少个参数,可以使用function内置的"arguments"对象,它存在与每个函数里面。
函数中可以包含函数,这为实现js的仿OO提供了基础。
函数定义有很多种,第三中定义方式很少用,但是很有用。你可以使用字符串定义函数。
字符串
转义字符 \
两者的效果是一样的
常用字符串函数
IndexOf 返回包含指定字符串在另外一个字符串第一次出现的位置,如果不存在则返回-1
lastIndexOf 返回包含指定字符串在另外一个字符串最后一次出现的位置,如果不存在则返回-1
charAt 字符串中指定位置的字符值
substring 获取字符串两个索引间的值
substr 功能和substring类似 第二个参数获取的是所需字符串的长度
例如
eval 将传入的字符串作为javascript代码执行
数字
NaN 代表 "not a number"
常用函数
parseInt ,parseFloat,toString
数组
两种定义数组的方式
数组的每个项可以包含任何类型的其他项,如字符串,数字,对象,函数,甚至数组.
通过如下代码访问
在数组的末尾加入一个新的项
splice函数的作用很大 可以用来任意添加或删除数组元素 下面示例用来添加和删除数组项.splice接收了两个参数:起始索引,移除项的数目 .
我们经常需要将数组转为字符串或字符串转为数组
提供了两个函数
join:将数组转为字符串 每个项之间用一个字符串连接起来
split:将字符串转为数组
还有两个有用的数组函数
pop:移除最后项且返回该项
shift:移除起始项且返回该项
这样数组会清空,还有一种更简洁的清空数组方式
for语句
for in语句实现相同的功能
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->functionvalidateForm(){
varemail=document.forms.tutform.elements.email.value;
if(!(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/.test(email))){
varemail=document.forms.tutform.elements.email.value;
if(!(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/.test(email))){
//上面的也可以用if(!email.match(...);
//这里的正则好像不怎么好用,我给从写了个 /^\s*([A-Za-z0-9_-]+(\.\w+)*@(\w+\.)+\w{2,3})\s*$/;
alert('Pleaseenteravalide-mailaddress');
returnfalse;
}
returntrue;
}
alert('Pleaseenteravalide-mailaddress');
returnfalse;
}
returntrue;
}
定义一个函数,需要前三个参数,其余7个是可选的
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->functionmyFunction(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10){
//dostuffwitharg1
//dostuffwitharg2
//dostuffwitharg3
if(arg4){
//dostuffwitharg4
}
if(arg5&&arg6&&arg7){
//dostuffwitharg5,arg6andarg7
if(arg8){
//dostuffwitharg8
}
}
if(arg9||arg10){
//dostuffwitharg9orarg10
}
}
//dostuffwitharg1
//dostuffwitharg2
//dostuffwitharg3
if(arg4){
//dostuffwitharg4
}
if(arg5&&arg6&&arg7){
//dostuffwitharg5,arg6andarg7
if(arg8){
//dostuffwitharg8
}
}
if(arg9||arg10){
//dostuffwitharg9orarg10
}
}
如果参数没有传值则为"undefine",这代表对象不存在。在判断语句中,系统可以把它转换为布尔值"false"。
函数参数中可以传递函数
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><scripttype="text/javascript">
functionmultiply(){
varout=1;
for(vari=0;i<arguments.length;i++){
out*=arguments[i];
}
returnout;
}
functionadd(){
varout=0;
for(vari=0;i<arguments.length;i++){
out+=arguments[i];
}
returnout;
}
functiondoAction(action){
alert(action(1,2,3,4,5));
}
</script>
<buttononclick="doAction(multiply)">TestMultiply</button>
<buttononclick="doAction(add)">TestAdd</button>
functionmultiply(){
varout=1;
for(vari=0;i<arguments.length;i++){
out*=arguments[i];
}
returnout;
}
functionadd(){
varout=0;
for(vari=0;i<arguments.length;i++){
out+=arguments[i];
}
returnout;
}
functiondoAction(action){
alert(action(1,2,3,4,5));
}
</script>
<buttononclick="doAction(multiply)">TestMultiply</button>
<buttononclick="doAction(add)">TestAdd</button>
若你不清楚函数有多少个参数,可以使用function内置的"arguments"对象,它存在与每个函数里面。
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->functionmyFunction(){
for(vari=0;i<arguments.length;i++){
alert(arguments[i].value);
}
}
for(vari=0;i<arguments.length;i++){
alert(arguments[i].value);
}
}
函数中可以包含函数,这为实现js的仿OO提供了基础。
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->functionmyFunction(){
functionnestedFunction1(arg1,arg2,arg3){
alert(arg1+arg2+arg3);
}
varnestedFunction2=function(arg1,arg2,arg3){
alert(arg1+arg2+arg3);
}
varnestedFunction3=newFunction('arg1,arg2,arg3','alert(arg1+arg2+arg3);');
}
functionnestedFunction1(arg1,arg2,arg3){
alert(arg1+arg2+arg3);
}
varnestedFunction2=function(arg1,arg2,arg3){
alert(arg1+arg2+arg3);
}
varnestedFunction3=newFunction('arg1,arg2,arg3','alert(arg1+arg2+arg3);');
}
函数定义有很多种,第三中定义方式很少用,但是很有用。你可以使用字符串定义函数。
字符串
转义字符 \
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->varn="Thedogtookit'sboneoutside";
varn='Thedogtookit\'sboneoutside';
varn='Thedogtookit\'sboneoutside';
两者的效果是一样的
常用字符串函数
IndexOf 返回包含指定字符串在另外一个字符串第一次出现的位置,如果不存在则返回-1
lastIndexOf 返回包含指定字符串在另外一个字符串最后一次出现的位置,如果不存在则返回-1
charAt 字符串中指定位置的字符值
substring 获取字符串两个索引间的值
substr 功能和substring类似 第二个参数获取的是所需字符串的长度
例如
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->alert('ThisisaTest'.indexOf('T'));//0
alert('ThisisaTest'.lastIndexOf('T'));//10
alert('ThisisaTest'.charAt(5));//i
alert('ThisisaTest'.length);//14
alert('ThisisaTest'.substring(5,9));//isa
alert('ThisisaTest'.substr(5,9));//isaTest
alert('ThisisaTest'.toUpperCase());//THISISATEST
alert('ThisisaTest'.toLowerCase());//thisisatest
alert('ThisisaTest'.lastIndexOf('T'));//10
alert('ThisisaTest'.charAt(5));//i
alert('ThisisaTest'.length);//14
alert('ThisisaTest'.substring(5,9));//isa
alert('ThisisaTest'.substr(5,9));//isaTest
alert('ThisisaTest'.toUpperCase());//THISISATEST
alert('ThisisaTest'.toLowerCase());//thisisatest
eval 将传入的字符串作为javascript代码执行
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->eval("alert('Hello,World!')");
数字
NaN 代表 "not a number"
常用函数
parseInt ,parseFloat,toString
数组
两种定义数组的方式
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->varstudents=newArray();
students[0]='Sam';
students[1]='Joe';
students[2]='Sue';
students[3]='Beth';
students[0]='Sam';
students[1]='Joe';
students[2]='Sue';
students[3]='Beth';
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->varstudents=['Sam','Joe','Sue','Beth'];
数组的每个项可以包含任何类型的其他项,如字符串,数字,对象,函数,甚至数组.
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->varspreadsheet=[
['A1','B1','C1','D1'],
['A2','B2','C2','D2'],
['A3','B3','C3','D3'],
['A4','B4','C4','D4']
];
['A1','B1','C1','D1'],
['A2','B2','C2','D2'],
['A3','B3','C3','D3'],
['A4','B4','C4','D4']
];
通过如下代码访问
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->varcol2=spreadsheet[1];
alert(col2[2]);
//or
alert(spreadsheet[1][2]);
alert(col2[2]);
//or
alert(spreadsheet[1][2]);
在数组的末尾加入一个新的项
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->varstudents=['Sam','Joe','Sue','Beth'];
students[4]='Mike';
students[students.length]='Sarah';
students.push('Steve');
//wenowhaveanarraywith7elements:['Sam','Joe','Sue','Beth','Mike','Sarah','Steve']
students[4]='Mike';
students[students.length]='Sarah';
students.push('Steve');
//wenowhaveanarraywith7elements:['Sam','Joe','Sue','Beth','Mike','Sarah','Steve']
splice函数的作用很大 可以用来任意添加或删除数组元素 下面示例用来添加和删除数组项.splice接收了两个参数:起始索引,移除项的数目 .
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->varstudents=['Sam','Joe','Sue','Beth'];
functionaddStudent(name){
students.push(name);
}
functionremoveStudent(name){
for(vari=0;i<students.length;i++){
if(students[i].toLowerCase()==name){
students.splice(i,1);
break;
}
}
}
functionaddStudent(name){
students.push(name);
}
functionremoveStudent(name){
for(vari=0;i<students.length;i++){
if(students[i].toLowerCase()==name){
students.splice(i,1);
break;
}
}
}
我们经常需要将数组转为字符串或字符串转为数组
提供了两个函数
join:将数组转为字符串 每个项之间用一个字符串连接起来
split:将字符串转为数组
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->varmyString='applesaregoodforyourhealth';
varmyArray=myString.split('a');//webreakmyStringapartonevery'a'found.
alert(myArray.join(','));//wejoinmyArraybacktogetherwithacommasoyoucanseeeachitem
alert(myArray.join('a'));//nowwejoinmyArraybacktogetherwithan'a'sowegetouroriginalstringback
varmyArray=myString.split('a');//webreakmyStringapartonevery'a'found.
alert(myArray.join(','));//wejoinmyArraybacktogetherwithacommasoyoucanseeeachitem
alert(myArray.join('a'));//nowwejoinmyArraybacktogetherwithan'a'sowegetouroriginalstringback
还有两个有用的数组函数
pop:移除最后项且返回该项
shift:移除起始项且返回该项
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->varstudents=['Sam','Joe','Sue','Beth'];
while(students.length>0){
alert(students.pop());
}
while(students.length>0){
alert(students.pop());
}
这样数组会清空,还有一种更简洁的清空数组方式
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->students.length=0
for语句
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->varstudents=['Sam','Joe','Sue','Beth'];
students['Sam']=90;
students['Joe']=85;
students['Sue']=94;
students['Beth']=82;
alert('Thereare'+(students.length)+'students:'+students.join(','));
for(vari=0;i<students.length;i++){
alert(students[i]+"'sgradeis:"+students[students[i]]);
}
students['Sam']=90;
students['Joe']=85;
students['Sue']=94;
students['Beth']=82;
alert('Thereare'+(students.length)+'students:'+students.join(','));
for(vari=0;i<students.length;i++){
alert(students[i]+"'sgradeis:"+students[students[i]]);
}
for in语句实现相同的功能
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->vargrades=[];
grades['Sam']=90;
grades['Joe']=85;
grades['Sue']=94;
grades['Beth']=82;
for(studentingrades){
alert(student+"'sgradeis:"+grades[student]);
}
grades['Sam']=90;
grades['Joe']=85;
grades['Sue']=94;
grades['Beth']=82;
for(studentingrades){
alert(student+"'sgradeis:"+grades[student]);
}
本文介绍JavaScript中的表单验证、函数定义及使用、字符串操作、数组处理等基础技巧,并提供实际代码示例。
13万+

被折叠的 条评论
为什么被折叠?



