第一种方法:
<script> var reg = /pattern/;//pattern是规则 </script> |
第二种方法:
<script> var reg = new RegExp(‘pattern’);//pattern是规则 </script> |
test(str) |
检索字符串中是否有满足指定条件的值,返回true或false。 |
练习1:
<script> var str="I love JavaScript!" var reg=/love/; alert(reg.exec(str)); alert(reg.test(str)); </script> |
练习2:
<script> var str="I love JavaScript!" //var reg=/love/; var reg = new RegExp('love'); alert(reg.exec(str)); alert(reg.test(str)); </script> |
正则表达式所支持的常用通配符
. |
可以匹配任何字符 |
d |
匹配0-9的所有数字 |
D |
匹配非数字 |
s |
匹配所有空白字符,包括空格、制表符、换行符、回车符等 |
S |
匹配所有非空白字符 |
w |
匹配所有的单词字符,包括0-9数字、26个英文字母和下划线 |
W |
匹配所有的非单词字符 |
匹配单词边界 |
|
B |
匹配非单词边界 |
[abc] |
查找方括号之间的任何字符 |
[^abc] |
查找任何不在方括号之间的字符 |
[0-9] |
查找任何从0至9的数字 |
[a-z] |
查找任何从小写a到小写z的字符 |
[A-Z] |
查找任何从大写A到大写Z的字符 |
[A-z] |
查找任何从大写A到小写z的字符 |
(red|blue|green) |
查找任何指定的选项 |
练习1: 定义字符串名为str制定规则设置弹窗
<script> var str="I love JavaScript!" var reg=/./; alert(reg.test(str)); </script> |
练习2:
<script> var str="I love JavaScript" var reg=/t/;//判断字符串是否以t结尾 alert(reg.test(str)); </script> |
练习3:
<script> var str="I love JavaScript" var reg=/[ac]/; alert(reg.exec(str)); alert(reg.test(str)); </script> |
练习:定义一个字符串”Just do it”,
(1)判断该字符串中有字母d吗?/d/
(2)判断该字符串是以a结尾的吗?/a/
(3)判断该字符串是否有数字/d/
(4)判断该字符串是否有非数字/D/
(5)判断该字符串中是否有非字母/W/
(6)判断该字符串中是否有字母a或者b/[ab]/
(7)判断该字符中是否以j开头/j/
正则表达式量词
n+ |
匹配任何包含至少一个n的字符串 |
n* |
匹配任何包含零个或多个n的字符串 |
n? |
匹配任何包含零个或一个n的字符串 |
n{X} |
匹配包含X个n的序列的字符串 |
n{X,Y} |
匹配包含X或Y个n的序列的字符串 |
n{X,} |
匹配包含至少X个n的序列的字符串 |
n$ |
匹配任何结尾为n的字符串 |
^n |
匹配任何开头为n的字符串 |
正则表达式修饰符
i |
执行对大小写不敏感的匹配 |
g |
执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) |
m |
执行多行匹配 |
练习: 制定规则并弹窗出
<script> var str="ORACLE" var reg=/oracle/i; alert(reg.exec(str)); alert(reg.test(str)); </script> |
练习:
<script> var str="oracle@126.com"; var reg=/^[0-9a-zA-z_-]+@[0-9a-zA-z_-]+.[{com|cn|org}]$/; alert(reg.test(str)); </script> |
JavaScript数组定义
JavaScript中定义数组的语法有以下3种:
<script> var arr1=[2,5,6];//定义时直接给数组元素赋值 var arr2=[];//定义一个空数组 var arr3=new Array();//定义一个空数组并通过索引来赋值 arr3[0]=1; arr3[3]="abc"; </script> |
提示:JavaScript为数组提供了一个length属性来得到数组的长度。
JavaScript数组特点:
v 数组长度可变。总长度等于数组的最大索引值+1
v 同一数组中的元素类型可以互不相同
v 当访问未赋值的数组元素时,该元素值为undefined,不会数组越界
练习1:
<script> var arr=[1,2,3,"abc",true]; for(i=0;i<arr.length;i++){ document.write(arr[i]+"<br/>"); } </script> |
练习2:
<script> var arr=new Array(); arr[0]=1; arr[2]="abc"; arr[3]=true; document.write(arr[0]+"<br/>"); document.write(arr[1]+"<br/>"); document.write(arr[3]+"<br/>"); document.write(arr.length+"<br/>"); </script> |
JavaScript运算符
类型 |
运算符 |
算数运算符 |
+ - * / % ++ -- |
赋值运算符 |
= |
比较运算符 |
> < >= <= == != === !=== |
逻辑运算符 |
&& || ! |
位运算符 |
& | ~ ^ << >> |
其它运算符 |
三目运算符(?:)、逗号运算符、void运算符、typeof、instanceof |
练习1:三目运算符
<script> 5>2?alert("5大于2"):alert("5小于2"); </script> |
练习2:逗号运算符
<script> var a,b,c,d; a=(b=5,c=2,d=3); alert(a); </script> |
练习3:void运算符
<script> var a,b,c,d; a=void(b=5,c=2,d=3); alert(a); </script> |
练习4:typeof:判断数据类型
<script> var a="oracle"; alert(typeof(a)); //alert(typeof a); </script> |
练习5:instanceof
<script> var a=[1,2]; alert(a instanceof Array);//判断a是否是数组 alert(a instanceof Object);//Object是所有数据类型的父类 </script> |