匹配任何字符字符串的正则表达式,最多为“/”Javascript

Regular Expression that matches any string of characters up to "/" Javascript

本文关键字:Javascript 任何 字符 字符串 正则表达式      更新时间:2023-09-26

我有一个Javascript函数,它循环遍历href导航并将其与URL位置匹配。如果两者匹配,则添加一个"活动"类。这很好用,除了当有人转到"服务/服务1"这样的页面时。我将如何添加逻辑以看起来像"服务/服务1"或"博客/帖子1"这样的字符串,并修剪为"服务/"和"博客/"?

这是我目前的函数

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

一种没有 RE 或 Split 的简单方法;

var root = location.substr(0, (location + "/").indexOf("/") + 1);

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

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

[^'/]+匹配任何字符,但不匹配一次或多次正斜杠/$断言我们处于一条线的尽头。

演示