前端基础类学习

正则全局'g'引发的问题

2017-04-09  本文已影响17人  饥人谷_米弥轮

我所理解的正则表达式(搜索lastindex)

  var sort = function(array) {
      var regex2 = new RegExp('[a-zA-Z]', 'g');
      var arr2 = [];
      for(var i = 0;i<array.length;i++) {
          console.log(regex2.test(array[i]));
          if(regex2.test(array[i]) == true){
              console.log(array[i]);
              console.log("ture");
          }else{
              console.log(array[i]);
              console.log("false");
          }
          console.log("--分隔线--");
      }
  }
  var arr = ['*','d','h','*','e','*','a','g','*'];
  sort(arr); //[d,e,g]

** 简单的说就是:**

** 结论:**

修改之前的代码:

  var sort = function(array) {
      var regex2 = new RegExp('[a-zA-z]', 'g');
      var arr2 = [];
      for(var i = 0;i < array.length; i++) {
          console.log(array[i],'数组每一项')
          if(regex2.test(array[i])) {
              console.log(array[i],'匹配的项')
              arr2.push(array[i]);
              regex2.lastIndex = 0;
              //就加了这一话。每次比较完一次,就把下一次的起始位置变为0
          }
      }
      console.log(arr2,'arr2');
  }
  var arr = ['*', 'd', 'h','*', 'e', '*', 'a','g', '*']
  sort(arr)
上一篇 下一篇

猜你喜欢

热点阅读