web基础学习之路

第六周第四天笔记

2018-08-21  本文已影响0人  果木山

1. 验证正则表达式中的全局g对几种方法的影响

2. 字符串的repalce方法与正则配合后的变化

<script>
    //需求:利用字符串的replace方法,将str中的两个huadian,全都替换成huandianxiehe;
    var str="huadianhuadian";
    str=str.replace("huadian","huadianxiehe");
    console.log(str);//结果为:huadianxiehe huadian;
    str=str.replace("huadian","huadianxiehe");
    console.log(str);//结果为:huadianxiehe xiehe huadian;
    //总结:字符串replace方法,本质就是查找被替换的内容,然后将其替换,返回一个新的字符串,但是需注意的一点是,每次查找只查找一个,只要有一个就停止,然后替换一个,结束,不会同时替换两个满足要求的内容;
    //替换一次,然后再添加代码,去替换第二次的时候,是从第一个开始查找,如果中途查找到内容,就会停止,不会再继续,导致的问题是,最后那个huadian永远不会被查找到;

    //正则中的replace方法;
    //1.正则表达式中不添加全局g;
    var str="huadianhuadian";
    var reg=/huadian/;
    str=str.replace(reg,"huadianxiehe");
    console.log(str);//结果为:huadianxiehe huadian
    str=str.replace(reg,"huadianxiehe");
    console.log(str);//结果为:huadianxiehe xiehe huadian
    //总结:不添加全局g,跟上述方法结果一样,仍然指挥查找一个,然后替换一个,结束;
    //2. 正则中添加全局g,
    var str="huadianhuadian";
    var reg=/huadian/g;
    console.log(str.replace(reg,"huadianxiehe"));//结果为:huadianxiehe huadianxiehe
    //总结,添加全局g,改变查找规则,在查找的时候,将满足规则的内容全部查找到,然后全部替换,最后结束;
    //大总结:正则改变的,只是一个规则,不会改变replace的特性,只是改变了查找规则;
    //实质:字符串原有的replace方法,特性没有改变,只不过是通过添加正则,来改变了查找的规则;由原来的查找一个,改为查找所有,而这个起决定性作用的就是正则,它制定的规则;
</script>

3. replace方法中的回调函数

4. replace方法与exec方法及match方法之间的联系

5.RegExp类实例私有属性lastIndex

6.RegExp类静态属性

7. 重复子项

8. 封装urlParse()方法

 <script>
     //需求:封装方法,把链接中传给后台的参数,以一个新对象的形式返回
     //思路:创建正则表达式,利用replace方法,查找到满足规则的内容,通过在正则中添加小分组,来在回调函数中农获取参数;
     var str="https://baike.baidu.com/pic/%E6%9C%B4%E4%BF%A1%E6%83%A0/3420577/0/e61190ef76c6a7eff1edd899f5faaf51f2de6641?fr=lemma&ct=single&pic=e61";
     //链接中给后台传的参数,是在问号之后;
     //封装方法:封装到字符串类的原型上
     String.prototype.urlParse=function () {
         //this代表str
         var reg=/([^?=&]+)=([^?=&]+)/g;
         //分析:"[^?=&]"的含义是除了?,=,&这三个符号,"+"多个,"="必须要有等号
         var obj={};
         this.replace(reg,function($0,$1,$2){
             obj[$1]=$2;
         });
         return obj;//如果不填返回值,会默认返回实例对象,此时返回引用数据类型,会对其重新赋地址;
     };
     var obj=str.urlParse();
     console.log(obj);//结果为:{fr: "lemma", ct: "single", pic: "e61"};
 </script>

9. 日期格式化封装formatDate()方法

10. 知识点积累

10.1 "||"和"&&"的应用

10.2 正则只匹配不捕获

10.3 小括号的用法

10.4 中括号的用法

10.5 量词元字符"?"问号的用法

11 回调函数callback

12 数组forEach方法

13 封装浏览器兼容的ForEach方法

14 数组map方法

15 封装浏览器兼容的Map方法

上一篇 下一篇

猜你喜欢

热点阅读