this+正则



<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>this</title>
    <script>
     //this:指的是调用函数的对象,但是对于自调用函数来数,它其中的this指向window
    window.onload = function(){
        //函数中引用
        var x = 1;
        function f(){
             this.x=2; 
        };
        f();//执行该函数时结果是2,不执行该函数时结果是1.
        console.log(x);
        //函数绑定对象 (对象中引用,this指向该对象)
        function f1(){
            console.log(this);
        }
        var o = {};
        o.name = 'sonia';
        o.action = f1;
        f1();//直接执行此函数时this指向Windows。
        o.action();//执行此函数时,this指向对象 o;
        //构造函数中引用
        function F(name,age){
            this.name = name;
            this.age = age;
        };
        var ff =new F('sonia',20);

        //call apply 
        var name = '123';
        function f1(){
            return this.name;
        }
        var o = {};
        o.name = 'sonia';
        o.action = f1;
      console.log(o.action.apply());//结果是‘123’,因为apply的参数如果不填写的话,默认是一个指向window的this。
      console.log(o.action.apply(o));//结果是‘sonia’


      //自调用函数
      var number  =1;
      var f={
        number:2,
          showNumber:function(){
              this.number = 3;
              (function(){
                  console.log(this.number);
              })();//函数自执行,this指向window
            console.log(this.number);
          }
      };
      f.showNumber();//结果是   1 3


      //正则表达式
      //校验
      var value = '123';
      var filter = /^go?gle$/;
     // var filter =new RegExp('^go?gle$');另一种写法
      if(filter.test(value)){
          console.log('ok');
      };
      /*
      “\B与\b”
      \b:匹配一个单词的边界
      \B:匹配一个单词的非边界
        hi thi this his
        \Bhi\B:只能匹配到单词‘this’,因为this中的‘hi’前后都有字符
        \bhi\b:只能匹配到单词‘hi’,因为hi中的‘hi’前后都没有字符
    “\D与\d”
      "\d":匹配一个数字字符,
      "\D":匹配一个非数字字符
      12erty3345
      \d:能匹配出所有的数字
      \D:能匹配出所有的字母
    “\w”和“\W”
     “\w”:匹配字母/数字/下划线
     “\W”:匹配非字母/数字/下划线
      123abc_@#$%
      \w: 匹配所有的字母/数字/下划线
      \W:匹配所有的非字母/数字/下划线
    “^”和“$”
     “^”代表字符串的开头
     “$”代表字符串的结束
     ^hi
     hi$
     ^hi$:只能与hi相匹配。

    “[ ]”:方括号“[ ]”匹配指定一堆字符中的一个。
     ^[a-z]at$:只能匹配出三个字符,第一个字符是a-z(必须是小写)中的一个
     ^[A-Za-z]at$:只能匹配出三个字符,第一个字符是a-z(大小写都可以)中的一个
     ^[aeiou]at$:只能匹配出三个字符,第一个字符是aeiou中的一个

    “[^]”:方括号“[^]”不匹配这个集合中任何一个字符。
     ^[^xyz]at$:只能匹配出三个字符,第一个字符是不能是xyz中的一个

    重复符号“+”:表示前一模式可以被重复1次或n次。
     ^go+gle$:匹配gogle,google,gooogle,+号前一个字符重复至少一次。
     ^g[aeiou]+gle$:aeiou中的某一个字符重复一次以上都满足。
    
    重复符号“*”:“*”表示前一模式可以被重复0次或n次。
     ^go*gle$:和+用法一致,只是包含了0次。(ggle、google、gooooooooooogle。。。。。。)

    符号“?”:“?”表示前一模式可以被匹配0次或1次。
    ^go?gle$:只能匹配:ggle、gogle。

    重复符号“{x,y}” 
        “{x}”表示前一模式模式可以被重复x次。
            ^go{2}gle$:o重复两次。
        “{x,y}”表示前一模式模式可以被重复x到y次。
             ^go{2,4}gle$:o重复2到4次
        “{x,}”表示前一字符模式可以被重复至少x次。
             ^go{2,}gle$:o重复2次级2次以上。

    子表达式“( )”:“( )”可以指定一堆字符来匹配一个模式。分组
     ^(very )*large$:可以匹配:large、very large、very very large、very very very very large。。。。。

    分支“|”:分支“|”用来指定几个规则只要匹配一个规则即成匹配。
    ^com$|^org$|^net$:能匹配的字符串(仅3个):com、org、net
    ^abc.(com|org|net)$:能匹配的字符串(仅3个):abc.com、abc.org、abc.net

    转义符号“\”:如果要匹配“[”“^”“+”“)”等等有特殊含义的字符,可以用“\”做转义。
    ^1\*\(2\+3\)=6$:能匹配的字符串(仅1个):1*(2+3)=6
 */
    }
    </script>
</head>
<body>
    
</body>
</html>

猜你喜欢

转载自blog.csdn.net/zhujiarunm/article/details/82079525
今日推荐