zoukankan      html  css  js  c++  java
  • 快乐的JS正则表达式(二)

    在上一篇中介绍了一个test方法,在本文中将使用另外一个,exec方法可以找到匹配的结果并且返回结果以及位置。exec("正则");

      简单测试:

    var str = "{追梦子}";
    var reg = /追梦子/;
    console.log(reg.exec(str)); //["追梦子", index: 1, input: "{追梦子}"]

      exec返回的是一个数组,第一位是匹配到的内容,第二位是匹配到的内容第一位置的索引,索引从0开始的。

      另外如果需要匹配一段文本,并且把某一个字提取出来可以给需要提取出来的子加括号。

    var str = "{追梦子}";
    var reg = /追(梦)子/;
    console.log(reg.exec(str)); //["追梦子", "梦", index: 1, input: "{追梦子}"]

      也有人叫它分组,更多exec的用途会在后面的几节中详细讲到,因为我们需要更多的知识来扩充我们的大脑。

      .字符可以用来匹配任意的一个字符串。

    var str = "#f3f3f3";
    var reg = /./;
    console.log(reg.exec(str)); //["#", index: 0, input: "#f3f3f3"]

      小任务:我们需要匹配var str = "json.js";这段文本,并且.js前面可以是任意的内容,温馨提示+可以匹配任何包含至少一个n的字符串。

    var str = "json.js";
    var reg = /.+.js/;
    console.log(reg.exec(str)); //["json.js", index: 0, input: "json.js"]

      如果使用了正则表达式中的特殊字符最好前面加进行转译。所谓特殊字符就是某个字符在正则中有特殊的含义,比如+、. 、*、?等。

      假如我们想提取.js前面的字符可以这样做。

    var str = "json.js";
    var reg = /(.+).js/;
    console.log(reg.exec(str)); //index.js:3 ["json.js", "json", index: 0, input: "json.js"]

      回想一下我们前面说的分组,当然我们也可以使用多个分组。

    var str = "json.js";
    var reg = /(.+).(js)/;
    console.log(reg.exec(str)); //["json.js", "json", "js", index: 0, input: "json.js"]

      至于这有什么用后面会讲的,不用着急。

       ^表示这个字符后面的那个字符必须出现在开始的位置。

    var str = "wjson.js";
    var reg = /^j.+.(js)/;
    console.log(reg.exec(str)); //null

      因为j并不在开始的位置

    var str = "json.js";
    var reg = /^j.+.(js)/;
    console.log(reg.exec(str)); //["json.js", "js", index: 0, input: "json.js"]

      ^还有另外一个用途,如果在[]中使用^那么^表示的就是取非。

    var str = "jQuery.js";
    var reg = /j[^a-z][a-z]*.js/;
    console.log(reg.exec(str)); //["jQuery.js", index: 0, input: "jQuery.js"]

      [^a-z]表示除了小写a-z以外的任意字符,另外这段代码还使用了*号,*号表示匹配前面一个字符零次或者多次。在这里就是匹配[a-z]中的任意一个字符0次或多次。

    本节完。

      

      

  • 相关阅读:
    Android之startActivity、startActivityForResult和setResult详解
    Android之Activity的标准写法参考
    Android之Handler用法总结[一]
    UHF天线知识汇编
    数字图像处理【一】基础理论
    S2SH之简易的Web Service实现
    Java Web开发环境搭建基础[Windows篇]
    Hadoop的安装(Ubuntu 12.10为例)
    【NOIP2016普及组复赛】魔法阵
    【NOIP2016提高A组集训第13场11.11】最大匹配
  • 原文地址:https://www.cnblogs.com/pssp/p/5274546.html
Copyright © 2011-2022 走看看