zoukankan      html  css  js  c++  java
  • js 正则表达式

    1首选正则表达式的形式有两种

    (1).第一种  new RegExp("ada","igm");其中"ada"表示要匹配的形式,"igm"表示的是i(忽略大小写),g(全局匹配),m(多行匹配)。

    (2).第二种 /adajsk/ig;

    2.正则的两种校验方法:test,exec。注意这两种方法是正则的方法

    <script>
    var pattern=/box/ig;
    var string=this is a Box  ,this is a tom;
    pattern.test(string);
    </script>

    结果返回true或者false;且注意只要匹配到了就行,同理exec也是一样,但是需要注意exec返回值是第一次匹配到的元素,上述用exec会返回Box;如果我们使用了分组的话,会返回一个数组,数组中第一个值是匹配到的内容,第二个是分组中的值

    例如

    <script>
    var pattern=/8(.*?)7/g;
    var string="8abc7def8ghi7";
    alert(pattern.exec(string)/;
    </script>

         首先只会校验最开始符合的那个,也就是"8abc7";然后返回值是一个数组,数组第一个值是"8abc7"第二个数是abc(分组中的值);

    (3).同理对于字符串也有几个方法(match,replace,search,split);

    首先来讲一下match,这个函数会匹配到所有的满足的字符串,然后放到一个数组中返回出来

    <script>
    var pattern=/8(.*?)7/ig;
    var string="8abc7dec8efg7";
    alert(string.match(pattern);

    返回8abc7,8efg7。

    2).replace函数将匹配到的字符串替换成其他字符串。

    一般的情况下,我们都是讲匹配到的字符串转换成某一个字符串.

    <script>
    var pattern=/8(.*?)7/g;
    var string="8abc7def8ghi7";
    alert(string.replace(pattern,"1");
    </script>

    结果为"1def1".是将所有匹配到的都转换成"1";

    这个地方我们要深挖一下了,如何将匹配到的字符串转化成其他不同的几样字符串呢?

    例如

    <script>
    var s=["1","2"];
    var i=0;
    var pattern=/8(.*?)7/g;
    var string="8abc7def8ghi7";
    alert(string.replace(pattern,function(){
              return s[i++];
    });
    </script>

    结果为"1def2";

    其实replace函数内部是有一个循环的,每次找到一个符合要求的字符串,就执行后面的函数一下。所以可以用一个变量i来表示第几次找到。

  • 相关阅读:
    JAVA基础——编程练习(二)
    JAVA基础——面向对象三大特性:封装、继承、多态
    JVM内存
    50. Pow(x, n) (JAVA)
    47. Permutations II (JAVA)
    46. Permutations (JAVA)
    45. Jump Game II (JAVA)
    43. Multiply Strings (JAVA)
    42. Trapping Rain Water (JAVA)
    41. First Missing Positive (JAVA)
  • 原文地址:https://www.cnblogs.com/yuaima/p/5248518.html
Copyright © 2011-2022 走看看