JS基础学习(六)

Math对象

(1) Math不是构造函数,是一个工具对象,封装了数学的常用量和方法-》对象;

1:Math的属性

  例如:Math.PI (可以查手册,此处不做过多介绍)3.141592653589793表示圆周率

 2: Math的方法

    console.log(Math.abs(-1));//Math.abs(-1)绝对值方法

    console.log(Math.ceil(1.5));//Math.ceil(1.5)向上取值 1.1-》2 ; 1.5——》2;

    console.log(Math.floor(1.1));//Math.floor(1.1)向下取值丢掉小数。

console.log(Math.round(1.5));//Math.round(1.5)->2四舍五入;

        console.log(Math.pow(3,2));//Math.pow(x,y),x的Y次方;      

      生成0~y的随机数Math.round(Math.random()*y);

      生成x~y 的Math.round(Math.random()*(y-x)+x);

         for(var i=0;i<10;i++)

        console.log(Math.round(Math.random()*10));

包装类

//         包装类:就是把基本数据类型转换为对象;

//         String(),Number(),Boolean(),可以把基本数据类型转换为一个对象

//         例如:

        var a=new Number(10);

        console.log(typeofa);//"object"

        //一般是用来隐式调用;

        例如:a.toString()方法,a本身是一个基本数据类型,将其暂时转换为Number对象在调用tostring()方法.

             Sting对象的属性和方法

 

    符串的方法(字符串本质是一个字符数组的形式保存的)String对象的方法和属性

               var a="helloworld";

             console.log(a.length);//length属性表示字符串的长度

//            字符串的方法

1:charAt()方法

a=a.charAt(5);/获取指定位置的字符结果为空格字符a[5]=" ";

console.log(a);

2:charCodeAt();

a=a.charCodeAt(5);//获取指定字符的unicode编码

3:concat()连接字符串

         var b="jsfj";

         b=b.concat(a);//连接多个字符串并将新的字符串返回。

         console.log(b);

4:indexof(start,end);//该方法用来检索字符串,返回第一次找到的位置

          b=b.indexOf('h');//"4" b[4]=h

         lastindexOf()方法;从后面检索

           console.log(b);    

5:split(" ")方法参数是一个界定符,用来作为分割字符串;

          var a="hello world";

          console.log(a.split(""))//"hello,world"以空格为界定符来分割字符串。

 6:slice(start,end);用来截取字符串

 7:toLowerCse(),转换为小写字符toUpperCase();转换为大写字符

 

 

 

正则表达式

正则表达式:用来定义字符串的一些规则,计算机可以根据正则表达式来进行检查字符串是否符合当前的规则

1:创建一个正则表达式

例如: var a=newRegExp("a","i");//创建一个正则表达式a,第一个参数a表示这个正则表达式

第二个参数 i:表示匹配忽略大小写   g:表示完全匹配;

var a=new RegExp("B","g");

var b="aaabbbcccA";

console.log(a.test(b));//test()方法用来测试当前字符串中是否符合正则表达式。

2:常量个方式创建正则表达式

           var reg=/a/i ;等价于var a=newRegExp("a","i");

           格式 var 变量=/正则表达式/匹配模式(i忽略大小写,g完全匹配)

           reg=/a|b/ ;//表示字符串中是否含有a或者b

           reg=/[a-d]/ ;//表示字符串中是否含有a-d中的任意字符

           reg=/[^a-d]/;表示除了a-d的任意字符;

           reg=/a[bcd]e/;//表示已a和e字符结尾,第二个字符为b或c或d;

 

3:字符串的方法和正则表达式

(1)split()方法可以将字符串根据参数分割

例如:

var a="hello1 name2 age3";

console.log(a.split(" "));//根据空格字符将字符串分割;"hello1,name2,age3"

//          参数要求为根据任意的字母进行分割时普通的参数就不能满足要求需要用正则表达式;

          console.log(a.split(/[a-z]/ig));//",,,,,1 ,,,,2 ,,,3"

           split()方法即使不使用全局匹配,也会使用全局匹配;

(2)search()搜索字符串中是否含有指定字符与(indexof()方法类似),但是他可以传入一个正则表达式

//        (不能全局匹配只会查找一个);

          var a="hello nameage";

          console.log(a.search(/a/));//"7"

(3)match()方法根据正则表达式,将一个字符串符合条件的内容提取出来(默认情况下只会找到第一个符合要求的)

//      可以使用全局匹配;

    var a="123fsdgg 55d6gdfdsgs45g6";

console.log(a.match(/[0-9]/g));//"1,2,3,5,5,6,4,5,6"提出了数字.

(4)replace()将字符串中的指定内容替换为新内容

       vara="123fsdgg55d6gdfdsgs45g6";

      console.log(a.replace(/[0-9]/g,""));//将数字替换为空串,就是把数字字符删除.

(5)量词 :设置一个内容出现的次数{n}出现n次;

           {n}表示连续出现n次只对前面的一个字符生效,{m,n}出现m~n次;

           +表示至少一个   *表示0个或者多个  ?出现0个或者1个

           ^表示以这个字符开头 $表示已这个字符结尾  /^a$/表示以a字符开头而且以结尾等价于"a"

       var reg=/a{3}/;//表示aaa匹配

           console.log(reg.test("bb"));//false

       var reg=/(ab){3}/;

           console.log(reg.test("ababab"));//true

       var reg=/ab{3}/;//   出现a后面出现连续的三个b;

       console.log(reg.test("cbbb"));//false

       var reg=/ab{1,3}/;// b出现1到3次

       console.log(reg.test("ab"));//"true"

  例如:电话号码的匹配

    匹配规则 : 1 第一位必须以1开头 …… ^1

            2 第二位必须是3-9的任意字符  [3-9];

            3 三位后面有9位必须要结尾 [0-9]{9}$

            var phoneReg=/^1[3-9][0-9]{9}$/;

(6)特殊字符的匹配

特殊字符的匹配,在JS中某些特殊字符有特殊的含义

//      例如 .表示任意字符,如果需要检查字符串中是否含有点需要使用转义字符/

//      var str="hello.";

//      var reg=/./;

//      console.log(reg.test(str));

//         其余的参考手册:不一一举例;

//        

//         练习:去除字符串中的空格当用户输入用户名是我们需要去除其中的字符,并且如果有意输入的空格需要保存,无意的空格需要删除

           var str="           hello    name            ";

           var reg=/^\s*|\s*$/g;

           console.log(str.replace(reg,""));//"hello    name"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值