正则表达式匹配任何字符串,直到" /"使用Javascript

时间:2014-12-27 16:15:49

标签: javascript regex angularjs

我有一个Javascript函数,它循环通过href导航并将其匹配到url位置。如果两者匹配,那么"活跃"类被添加。这很有效,除非有人去了像#34; services / service1"这样的页面。我如何添加逻辑来查看像#34; services / service1"或" blog / post1"只需"服务/"和"博客/"?

这是我当前的功能

scope.$on("$routeChangeSuccess", function (event, current, previous) {
        var location       = current.$$route.originalPath;
        var selectionhref  = element.children().find('a');
        //Searches for match of routepath url and href, removes siblings active, adds active
        (function(){ 
          element.children().each(function(index){
          console.log(location);  
          if($(selectionhref[index]).attr('href') == location){
          $(this).siblings().removeClass('active');  
           $(this).addClass('active');
          };
          });
        })()
      }); //routeChangeSuccess

2 个答案:

答案 0 :(得分:2)

没有RE或Split;

的简单方法
var root = location.substr(0, (location + "/").indexOf("/") + 1);

答案 1 :(得分:1)

使用replace功能。它接受各种参数,一个是正则表达式和替换字符串。

> "services/service1".replace(/[^\/]+$/, "")
'services/'

[^\/]+匹配任何字符,但不匹配正斜杠/一次或多次。 $声称我们处于一条线的末端。

DEMO