03_js基本语法 1

1 概念

js:javascript:::W3C
    jscript::::微软Microsoft 自己的  jsript=js+ActiveXObject(可以访问本地磁盘文件的对象)
    一门基于对象和事件驱动的客户端脚本语言
解释:基于对象:js中所有的内容都是对象  js编程依赖于浏览器内置对象
     事件:客户在浏览器执行的操作::点击鼠标 键盘输入 
     事件驱动:当客户执行某个操作 此事件关联的js代码 就会执行
     客户端:js内嵌在html(客户端页面)中 浏览器内置有解析js的引擎
     脚本语言:内嵌在页面中 实现页面动态效果(数据/样式可以更改)的语言
前端三剑客:
     html:提供标签 封装数据
     css:提供属性 控制样式
     js:提供逻辑判断 实现动态效果

2 js的特点

特点:  1 基于对象
       2 简单性(弱类型语言,语法不太严格)
       3 跨平台(js代码可以在任意操作系统上运行)
       4 安全性(不允许访问硬盘)
       5 动态性(通过js代码实现页面的动态效果(页面样式和数据发生变化))
       6 解释型语言(浏览器通过js引擎直接解释后即可运行  不会生成字节码文件)

3 js和java的区别

java:一种实现后台业务逻辑的面向对象的高级编程语言
js:一种基于对象和事件驱动的客户端脚本语言
相同之处:都是编程类语言
不同之处:
  1 js是基于对象
     java是面向对象(编程思想)
  2 js是弱类型语言(变量的类型可以更改)
     java是强类型语言(定义变量时 必须先制定类型 变量一旦定义类型不能更改  而且只能存储对应类型的数据)
  3 js实现页面动态效果
    java实现后台业务逻辑
  4 js是解释性语言:js被浏览器中内置的js引擎 解释后即可运行
    java是编译性语言:java代码 必须被编译器编译为字节码文件后  字节码文件才能被jvm运行
  5 js是Netscape(网境)  公司的产品
    java是sun公司的产品 被oracle收购

4 所有编程类语言的组成

关键字:具有特殊含义的单词/字符
标识符:名字    命名规则和命名规范
数据类型:数据进行分类(字符、数字、布尔、字节)
运算符:进行运算的符号(算术运算符、比较运算符、赋值运算符、逻辑运算符、三元运算符、位运算符)
变量:内存中存储单值数据的一片区域
语句:一段完整的计算机命令
注释:对代码进行解释说明
流程控制:通过关键字控制代码的执行流程
方法:对一个具有完整功能代码的封装
数组:内存中存储多个数据的容器
对象:数据和功能的封装体(只针对于面向对象的语言)

5 js和html结合的方式

  • 方法1:alert(n); 弹出框:以弹出框的方式 展示参数
<!--方式1:在html的任意位置都可以定义script标签:script标签中就是js代码-->
<script type="text/javascript">
    // 方法1:alert(); 弹出框:以弹出框的方式 展示参数
    alert("1111");
</script>

<!--方式2:在html的任意位置都可以定义script标签:通过src属性引入外部css文件-->
<script type="text/javascript" src="js1.js">
    alert("2222");//当script标签引入外部js文件  此标签内的js代码无效
</script>
  • js1.js
//js代码
alert("3333");

5 js的基本语法(和java不同之处)

5.1 数据类型:

  • 方法1:typeof(n) :获取参数数据的类型

  • 方法2:document.write(n): 把参数数据打印到页面

<script type="text/javascript">
    // 方法2:typeof(n) 获取参数数据的类型
    // 方法3:document.write(n) 把参数显示在页面
    document.write('a'+"的类型"+typeof('a')+"<br/>");//string
    document.write("abc"+"的类型"+typeof("abc")+"<br/>");//string
    document.write(1+"的类型"+typeof(1)+"<br/>");//number
    document.write(1.1+"的类型"+typeof(1.1)+"<br/>");//number
    document.write(true+"的类型"+typeof(true)+"<br/>");//boolen
    document.write([1,2,3]+"的类型"+typeof([1,2,3])+"<br/>");//Object
    document.write(new Object()+"的类型"+typeof(new Object())+"<br/>");//Object
    document.write(new  Date()+"的类型"+typeof(new  Date())+"<br/>");//Object
    var  a;//定义变量
    document.write(a+"变量没有赋值的类型"+typeof(a)+"<br/>");//undefined
    //js中只存在5种类型:string  number boolean object undefined
</script>

注意

  • js中 字符和字符串都是string类型
  • js中如果一个变量没有赋值:默认初始值是undefined 表示变量没有赋值
  • js种 数字都是number类型 不区分整数和浮点

5.2 js的注释

和java完全相同

5.3 变量

js是弱类型语言:内存中变量的空间大小可以更改
定义变量用关键字var即可
<script type="text/javascript">
    //4.5 常量和变量
    //定义变量var
    var k=1;
    //注意1:js中变量可以定义多次
    var k=2;
    document.write(k+":::"+typeof(k)+"<br/>");
    //注意2:js中变量可以不定义 直接赋值 并使用
    m=2;
    document.write("m="+m+"<br/>");
    //注意3:js中变量不赋值 直接使用  默认值是undefined:::表示此变量没有赋值
    var n;
    document.write("n="+n+"<br/>");
    //注意4:js中变量不能不定义 不赋值 直接使用::语法报错
    //document.write("h="+h+"<br/>");
    document.write("1="+1+"<br/>");
    //注意5:整个页面的script标签是相通的
    //注意6:js中变量的数据类型可以更改
    k=2;
    document.write(k+":::"+typeof(k)+"<br/>");
    k=true;
    document.write(k+":::"+typeof(k)+"<br/>");
</script>
<script type="text/javascript">
    document.write("m="+m+"<br/>");
</script>

5.4 几个特殊数据

<script type="text/javascript">
    //注意3:NaN,""," ",null,undefined
    document.write("(\'a\'-2)="+('a'-2)+"<br/>");
    document.write("NaN表示结果不是数字<br/>");
    document.write("\"\"表示结果是空字符串  没有字符 但是字符串对象<br/>");
    document.write("\' \'表示结果是字符串  有字符 有一个空字符的字符串对象<br/>");
    document.write("null表示变量没有指向一个对象<br/>");
    document.write("undefined表示变量没有赋初始值<br/>");
    document.write("undefined+1 ="+(undefined+1)+"<br/>");//NaN
    document.write("NaN+1 ="+(NaN+1)+"<br/>");//NaN
    document.write("null+1 ="+(null+1)+"<br/>");//NaN	 
</script>

5.5 运算符

<script type="text/javascript">
    document.write("<h1>js中运算符</h1>");
    //4.6运算符:算术运算符:+ - * / % ++ --
    //注意1:js是弱类型语言:1/2=0.5
    document.write("1/2="+1/2+"<br/>");
    //注意2:js中字符串进行-*/% 会自动的把字符串转化为数字
    document.write("(\'1\'+2) 字符串连接运算="+('1'+2)+"<br/>");
    document.write("(\'1\'-2) ="+('1'-2)+"<br/>");
    //方法4:parseInt(n);把变量n的值转换为整数
    //方法5:parseFloat(n);把变量n的值转换为浮点数字
    document.write("parseInt(\'12\')+1="+(parseInt('12')+1)+"<br/>");
    document.write("parseInt(\'12.3\')+1="+(parseInt('12.3')+1)+"<br/>");
    document.write("parseFloat(\'12.3\')+1="+(parseFloat('12.3')+1)+"<br/>");

    //2 比较运算符: > >= < <= != ==

    //3 逻辑运算符: && || ^ !

    //4 赋值运算符:=   += *= -= /= %=

    //5 位运算符: >>>  <<<  & | ^ 操作的是数字的二进制

    //6 三元运算符
    c=1>2?1:2;
    document.write("变量c="+c+"<br/>");
</script>

5.6 流程控制之选择结构

<script type="text/javascript">
    //4.7流程控制之选择结构
    if(2>1){
        document.write("2>1成立<br/>");
    }else{
        document.write("2>1不成立<br/>");
    }
    //注意:在js中所有的数据都可以作为boolean:  0,null,NaN,undefined,""是false 其他都是true
    var k=1;
    if(k){
        document.write(k+"是true <br/>");
    }
    k=1.1;
    if(k){
        document.write(k+"是true <br/>");
    }
    k="abc";
    if(k){
        document.write(k+"是true <br/>");
    }
    k=" ";
    if(k){
        document.write(k+"是true <br/>");
    }
    k=[];
    if(k){
        document.write(k+"是true <br/>");
    }
    k=new Date();
    if(k){
        document.write(k+"是true <br/>");
    }
    k=undefined;
    if(!k){
        document.write(k+"是false <br/>");
    }
    k='a'-1;
    if(!k){
        document.write(k+"是false <br/>");
    }
    k=null;
    if(!k){
        document.write(k+"是false <br/>");
    }
    k=1-1;
    if(!k){
        document.write(k+"是false <br/>");
    }
    k="";
    if(!k){
        document.write(k+"是false <br/>");
    }
    if(1==k){
        document.write(k+"是true <br/>");
    }
</script>

5.7 流程控制之循环结构

<html>
    <head>  <!--整个页面属性的设置-->
	     <title>js01概念</title>
		 <meta charset="utf-8"/>
		 <style type="text/css">
		     table{
			    width:900px;
				/*border:1px solid blue;*/
				margin:10px auto;
				border-collapse:collapse;/*合并相邻单元格之间的边框*/
			 }
			 td{
			    font-size:24px;
				padding:10px;
				border:1px solid blue;
			 }
		 </style>
	</head>
	<body> 
		 <script type="text/javascript">
		       //4.7流程控制之循环结构
			   //打印99乘法表
			   document.write("<hr>");
			   document.write("<table>");
			   for(var i=1;i<=9;i++){
			       document.write("<tr>");
			       for(var j=1;j<=i;j++){
				       document.write("<td>"+i+"*"+j+"="+i*j+"</td>");
				   }
				   document.write("</tr>");
			   }
			   document.write("</table>");
			   //判断一个数字是不是质数
			   for(var n=1;n<=100;n++){
			       //判断n是不是质数
				   var b=true;//定义一个变量作为标签
				   //定义变量m从2跑到n-1 循环判断是否能除尽n
				   for(var m=2;m<n;m++){
				      if(n%m==0){
					      b=false;
						  break;
					  }
				   }
				   if(n>1&&b){
				       document.write(n+"是质数!<br/>");
				   }
			   }
			   //打印4个方向的99乘法表
			   //判断pi到3.1415926到3.1415927之间计算了多少次
		 </script>
	</body>
</html>

6 js的方法/函数

<!--
方法: 指定功能代码的封装
作用: 代码的复用
格式: function 方法名(参数列表){
方法体//实现功能的代码块
return 返回值;//如果没有返回值 return可以省略
}
-->
<script type="text/javascript">
    //方法:求两个数字的和
    //定义方法
    //注意0:js是弱类型语言  方法不需要返回值类型的标识
    //注意1:js方法中:定义形参不需要var
    function qiuHe(a,b){
        var k=1;
    }
    //调用方法
    var sum1=qiuHe(1,2);
    document.write(sum1+"<br/>");

    //注意2:js中变量:方法中定义的变量称为局部变量  方法外定义的变量称为全局变量
    //                 局部变量作用域:当前方法    全局变量作用域:整个页面属性
    var i=1;
    for(var j=2;j<=10;j++){
        var h=1;
    }
    document.write("i="+i+",j="+j+",h="+h+"<br/>");
    function test01(a,b){
        var k=1;
        document.write("方法中获取全局变量成功:::i="+i+",j="+j+",h="+h+"<br/>");
        document.write("方法中获取局部变量成功:::a="+a+",k="+k+",b="+b+"<br/>");
    }
    test01(1,2);
    //document.write("方法外访问局部变量失败:a="+a+",k="+k+",b="+b+"<br/>");

    //注意3:js中方法:实参与形参个数可以不同:::js方法不存在方法重载
    function test02(a,b){
        document.write("test02::a="+a+",b="+b+"<br/>");
    }
    test02(1,2);
    test02(11,22,33);//实参比形参个数多:a/b只接收前两个
    test02(44);//test02::a=44,b=undefined::实参比形参个数少:没有赋值的形参为undefined

    //注意4:js方法体中默认使用数组arguments接收所有的实参
    function test03(a,b){
        document.write("test03::a="+a+",b="+b+"<br/>");
        document.write("js方法体中默认使用数组arguments接收所有的实参="+arguments+"<br/>");
        for(var i=0;i<arguments.length;i++){
            document.write("arguments["+i+"]="+arguments[i]+"<br/>");
        }
    }
    test03(11,12,13,14,15);

    //注意5:js方法也是对象
    var test031=test03(1,2);//使用变量test031接收test03的返回值
    document.write("test031="+test031+"<br/>");//test031=undefined
    var test032=test03;//给方法test03又起个名字test032
    document.write("test032="+test032+"<br/>");//test032=function test03(a,b){ ..... }
    test032(1,2);
</script>

7 方法的练习

<script type="text/javascript">
    //判断一个数是不是质数
    function pdZhiShu01(n){
        var b=true;
        for(var m=2;m<n;m++){
            if(n%m==0){
                b=false;
                break;
            }
        }
        return n>1&&b;
    }
    function pdZhiShu02(n){
        for(var m=2;m<n;m++){
            if(n%m==0){
                return false;
            }
        }
        return n>1;
    }
    for(var n=1;n<=100;n++){
        if(pdZhiShu02(n)){
            document.write("n="+n+"是质数!<br/>");
        }
    }

    //判断pi到3.1415926到3.1415927之间计算了多少次:4/1-4/3+4/5-4/7+4/9
    function qiuPI(){
        var pi=0;
        for(var ciShu=0;pi<=3.1415926||pi>=3.1415927;ciShu++){
            var num=4/(ciShu*2+1);
            pi+=(ciShu%2==0?num:num*(-1));
        }
        document.write("pi="+pi+",ciShu="+ciShu+"<br/>");
    }
    qiuPI();

</script>

8 js的类库

8.1 Array类:数组

//js数组创建两种方式:通过[] 通过new Array();
var arr1=[1,2,3,4,5,8];
document.write(arr1+"<br/>");//1,2,3,4,5,8
arr1=new Array(1,2,3,4,5,8);
document.write(arr1+"<br/>");//1,2,3,4,5,8

//js数组注意1:js数组长度可变
document.write(arr1.length+"<br/>");//6
document.write(arr1[6]+"<br/>");//undefined
arr1[6]=11;
document.write(arr1.length+"<br/>");//7

//js数组注意2:js数组不存在数组下标越界异常:访问到不存在的下标的元素时 值为undefined
document.write(arr1[-1]+"<br/>");//undefined

//js数组注意3:js数组元素类型可以不同
arr1=[undefined,"abc",3,[1,2,3,4],new Date(),new Object(),true];
for(var i=0;i<arr1.length;i++){
                                document.write("arr1["+i+"]="+arr1[i]+"<br/>");//6
                                }

                                //获取最大值
                                arr1=[11,12,32,41,15,8,0];
                                function getMax1(arr){
                                var max=arr[0];
                                for(var i=1;i<arr.length;i++){
max=max>arr[i]?max:arr[i];
}
return max;
}
document.write(arr1+"最大值是:"+getMax1(arr1)+"<br/>");

//排序
function paiXu01(arr){
for(var i=0;i<arr.length-1;i++){
                                 for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
var k=arr[i];arr[i]=arr[j];arr[j]=k;
}
}
}
}
document.write("排序前:"+arr1+"<br/>");
paiXu01(arr1);
document.write("排序后:"+arr1+"<br/>");

//js中Array类的属性:length
//js中Array类的构造方法:
//     arrayObj = new Array();创建一个没有元素的数组
//     arrayObj = new Array([size]);创建一个初始元素个数的数组
//     arrayObj = new Array([element0[, element1[, ...[, elementN]]]]);创建一个初始元素值的数组
arr1=new Array(3);
document.write(arr1.length+"<br/>");
arr1=new Array(1);
arr1[0]=3;
document.write(arr1.length+"<br/>");
//js中Array类的方法:
//1 Array concat([item1...]);添加参数元素到当前数组后面  返回此数组
arr1=[11,12,32,41,15,8,0];
document.write(arr1.concat(1,2,3,4)+"<br/>");
//2 String join(separator);使用参数字符拼接所有元素形成一个字符串
arr1=[11,12,32,41,15,8,0];
document.write(arr1.join("-")+"<br/>");//11-12-32-41-15-8-0
//3 Object pop( );移除并返回最后一个元素
//3 Object shift( );移除并返回第一个元素
arr1=[11,12,32,41,15,8,0];
document.write("移除前:"+arr1+"<br/>");
document.write(arr1.pop()+"<br/>");
document.write(arr1.shift()+"<br/>");
document.write("移除后:"+arr1+"<br/>");
//4 Array slice(start, [end]);获取数组的一部分,从start到end-1
//4 Array slice(start);获取数组的一部分,从start到length-1
arr1=[11,12,32,41,15,8,0,3,4,5,7];
document.write(arr1+"<br/>");
document.write("子数组:"+arr1.slice(1,5)+"<br/>");
document.write("子数组:"+arr1.slice(1)+"<br/>");
//5 Array reverse( );反转
document.write(arr1+"<br/>");
document.write("反转:"+arr1.reverse()+"<br/>");
//6 Array sort([sortfunction]);排序 
document.write(arr1+"<br/>");
document.write("排序:"+arr1.sort()+"<br/>");

//排序方法必须返回:正数 0 负数
function mySortFunction(a,b){
//按数字大小排序
a=parseFloat(a);
b=parseFloat(b);
return a==b?0:(a>b?1:-1);
}
document.write("排序:"+arr1.sort(mySortFunction)+"<br/>");


//4位数的黑洞:计算每个四位数(完全相同的除外) 进入黑洞6174需要的次数:
//各个位数的值 组成一个最大值和最小值 求差 循环此操作

8.2 String类

<script type="text/javascript">
    /*
			 String类:
			 js和java相同的方法:
				1:String charAt(index)  :获取index下标处的字符
				2: String concat(string...):把参数字符串拼接到当前字符串后面 :当前字符串没有各个
				3: int indexOf(str[, startIndex]):从startIndex位置处开始,获取str第一次出现的位置
				   int lastIndexOf(str[, startindex]):从startIndex位置处开始,倒着找 获取str第一次出现的位置
				4: string replace(old, new):用new替换old:只替换第一个
				5: string[] split(separator):切割
				6: string substr(start [, length ])	:截取子串 从start开始 截取length个字符	
				   strVariable.substring(start, end):截取子串 从start开始 到end-1结束	
				7: string toLowerCase( ):所有字符小写 
				   string toUpperCase( ):所有字符大写 
			 js中特有的方法:
			    1:str bold()
				2:str fontcolor(colorVal)
				3:str fontsize(intSize)
				4:str italics( )

				5: int charCodeAt(index);获取index下标处的字符在编码表中对应的整数
				6:String fromCharCode(code);获取参数整数在编码表中对应的字符
			 */
    var s="abc123abc321apple";
    document.write(s+":charAt(index):获取index下标处的字符:"+s.charAt(1)+"<br/>");
    document.write(s+":concat(string...):把参数字符串拼接到当前字符串后面:"+s.concat(1,"abc",true)+"<br/>");
    document.write(s+"<br/>");	   
    document.write(s+":indexOf(str):获取str第一次出现的位置:"+s.indexOf("a")+"<br/>");
    document.write(s+":indexOf(str[, startIndex]):从startIndex位置处开始,获取str第一次出现的位置:"+s.indexOf("a",5)+"<br/>");		 
    document.write(s+":replace(old, new):用new替换old:"+s.replace("a","-")+"<br/>");	 
    document.write(s+":split(separator):切割:"+s.split("a")+"<br/>");
    document.write(s+":substr(separator):截取子串:"+s.substr(2,5)+"<br/>");
    document.write(s+":substr(separator):截取子串:"+s.substr(2)+"<br/>");
    document.write(s+":substring(separator):截取子串:"+s.substring(2,5)+"<br/>");
    document.write(s+":substring(separator):截取子串:"+s.substring(2)+"<br/>");
    document.write(s.bold()+"::::<b>"+s+"</b><br/>");
    document.write(s.italics()+"::::<i>"+s+"</i><br/>");	
    document.write(s.fontcolor("#ff0000")+"::::<font color='#ff0000'>"+s+"</font><br/>");	
    document.write(s.fontsize(7)+"::::<font size='7'>"+s+"</font><br/>");
    document.write(s.fontsize(7).fontcolor("red").bold().italics()+"<br/>");	

    var s="abc123abc321apple";
    for(var i=0;i<s.length;i++){
        document.write(s.charAt(i)+"::::对应的整数:::"+s.charCodeAt(i)+"<br/>");
        document.write(String.fromCharCode(i+97)+"::::由整数获取字符:::::"+(i+97)+"<br/>");
    }
</script>

8.3 Math类

<script type="text/javascript">
    /*
			  	Math类:与数学运算相关的方法
                1:绝对值 : double abs(n)
                2:近似值 
				      : double ceil(n) 获取大于等于参数的最小正数
					  : double floor(n) 获取小于等于参数的最大正数
					  : double round(n) 四舍五入
                3:幂运算
				      : double pow(base, exponent) 
					  : double sqrt(number)
                4:随机	
                      : double random() 				
			 */	
    for(var n=0.1;n<10;n+=0.1){
        document.write("Math.ceil("+n+"):::::"+Math.ceil(n)+"<br/>");
        document.write("Math.floor("+n+"):::::"+Math.floor(n)+"<br/>");
        document.write("Math.round("+n+"):::::"+Math.round(n)+"<br/>");
    }
    document.write("Math.pow(2,3)求2的3次方:::::"+Math.pow(2,3)+"<br/>");
    document.write("Math.sqrt(2)求2开平方:::::"+Math.sqrt(2)+"<br/>");
    document.write("Math.random()随机:::::"+Math.random()+"<br/>"); 
    document.write("Math.random()随机1-7 :乘以范围 加上起始值 转换为整数:::::"+parseInt(Math.random()*7+1)+"<br/>");
</script>

8.4 Date类

<script type="text/javascript">
    /*
			    Date类:日期
				1 构造方法:
					dateObj = new Date()
					dateObj = new Date(dateVal)
					dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]]) 
			    2 获取和设置时间参数
				    int getXxx()
                    void  setXxx(val);
				3 Date和毫秒值之间的转换
                    long  getTime();
                    void setTime(val);
                4 获取本地日期格式的字符串
                    String toLocaleString();				
			 */	
    var  date=new Date();//当前时间
    document.write(date+"<br/>");
    date=new Date(0);//相对于历元:1970-1-1 0:0:0
    document.write(date.toLocaleString()+"<br/>");
    date=new Date(2022,10-1,7,16,25,30);//指定年月日时分秒:注意月是0-11
    document.write(date.toLocaleString()+"<br/>");

    //方法由日期获取字符串
    function date2Str(d){
        var y=d.getYear()+1900;
        var m=d.getMonth()+1;
        var da=d.getDate();
        var w=d.getDay();//0-日 1-一 2-二
        var h=d.getHours();
        var mi=d.getMinutes();
        var s=d.getSeconds();
        var week="日一二三四五六";
        var str=y+"年"+m+"月"+da+"号 星期"+week.charAt(w)+" "+h+":"+mi+":"+s;
        document.write(str+"<br/>");
        document.write(d.getFullYear()+"<br/>");//2022
    }
    date2Str(new Date());
    document.write("当前时间的毫秒值:"+new Date().getTime()+"<br/>");//2022
    date=new Date();
    date.setTime(0);
    document.write(date.toLocaleString()+"<br/>");
</script>

8.5 Global类

<script type="text/javascript">
    /*
			    Global:一个封装全局方法的对象:::期中的方法不属于某种类型
					isNaN(N);判断数据是不是NaN
					parseInt(n);获取一个整数
					parseFloat(n);获取一个浮点
					eval(str);解析字符串
			 */
    //注意:判断一个数据是不是NaN 不能用== 而是使用isNaN方法
    var v="a"/1;
    document.write("v:::::"+v+"<br/>");
    document.write("v==NaN:::::"+(v==NaN)+"<br/>");
    document.write("isNaN(v):::::"+isNaN(v)+"<br/>");
    var s="alert(111);";
    document.write(s+"<br/>");
    //eval(s);
    s="var i=1;i++;alert('i='+i);";
    eval(s);
</script>

8.6 RegExp类

<script type="text/javascript">
    /*
			     正则表达式:为字符串定义正确规则
				 js中的正则表达式和java基本一样

				 使用特殊字符来表示正则规则
				 1: 表示范围: []
				 [1-9]  可以取值1到9中的任意一个字符
				 [1234] 可以取值1234中的任意一个字符
				 [^1-9] 可以取值除了1到9以外的任意一个字符
				 [a-h[c-z]] 取并集::[a-z]
				 [a-h&&[c-z]] 取交集::[c-h]

				 2: 特殊字符
				 .  表示任意字符
				 /w 单词字符     :[0-9a-zA-Z_]
				 /W 非单词字符   :[^0-9a-zA-Z_]
				 /d 数字字符     :[0-9]
				 /D 非数字字符   :[^0-9]
				 /s  空白字符    :[ \t\n\x0B\f\r]
				 /S   非空白字符

				 3: 表示次数  {}
				 a{n} :a出现n次
				 a{n,} :a出现>=n次
				 a{n,m} :a出现>=n次 <=m次
				 a+     : a出现>=1次
				 a?     : a出现<=1次
				 a*     : a出现>=0次


				 //注意1:js中定义正则表达式 两种方式

			  */ 
    //注意1:js中定义正则表达式 两种方式
    var  regex1=/^1[3456789][0-9]{9}$/;
    var  regex1=new RegExp("^1[3456789][0-9]{9}$");

    //可以正则的方法1:字符串对象的方法:string[] split(separator)
    document.write("ab123ac144ab178a1213aui".split(/[0-9]+/)+"<br/>");
    //可以正则的方法2:字符串对象的方法:string replace(rgExp, replaceText)
    document.write("ab123ac144ab178a1213aui".replace(/[0-9]+/,"-")+"<br/>");
    //可以正则的方法3:正则对象的方法:boolean test(str)
    document.write(/^1[3456789][0-9]{9}$/.test("15036088040")+"<br/>");
    document.write(/^1[3456789][0-9]{9}$/.test("150360880401")+"<br/>");
    document.write(/1[3456789][0-9]{9}/.test("15036088040")+"<br/>");
    //注意:当使用test进行整个字符串匹配时  必须加^$表示首尾
    document.write(/1[3456789][0-9]{9}/.test("150360880401")+"<br/>");

    //以下写法完全相同
    document.write("ab123ac144ab178a1213aui876YTR273TRRE111".split(/[a-zA-Z]+/)+"<br/>");
    document.write("ab123ac144ab178a1213aui876YTR273TRRE111".split(/[a-z]+/i)+"<br/>");

</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值