Javascript 如果找到的是数字,则删除 url 最后一段

Javascript remove url last segment if found is numeric

我有 javascript 映射 url 的功能和突出显示菜单项的超链接,但是我无法在更深的页面中使用 url 最后一段带有数字,这url 看起来像:http://localhost/story/89

我想删除最后一个 url 段,如果它是一个数字,那么 url 最终会变成 http://localhost/story(也去掉 /)。

/* highlight nav menu */
$(function(){
    $('#topMain li a').each(function(index) {
        if($.trim(this.href) == stripQueryStringAndHashFromPath(window.location.href)) {
            $(this).closest('li').addClass('active')
            .closest('li.parent').addClass('active');
        }
    });
});

function stripQueryStringAndHashFromPath(url) {
    return url.split("?")[0].split("#")[0];
}

您可以将正则表达式参数传递给 split()

只需在 stripQueryStringAndHashFromPath 函数的 url.split("?")[0].split("#")[0] 末尾添加 .split(/(\/\d*)$/)[0]

新的正则表达式段基本上搜索反斜杠 (\/),后跟一个或多个数字 (\d*),位于末尾 ($) ) 的字符串。

有关正则表达式的更多信息 here

function stripQueryStringAndHashFromPath(url) {
    url = url.split('?')[0].split('#')[0].split(/(\/\d*)$/)[0];
    return url;
}

console.log(stripQueryStringAndHashFromPath('http://localhost/story/89'));

    function validateURL(url){ let lastSegment = url.split("/");
        if(lastSegment[(lastSegment.length)-1].match(/^[0-9]$/))
            console.log("True Last Segmant");
        }
    validateURL("http://localhost/demo/8")

function stripQueryStringAndHashFromPath(url) {
    url = url.split('?')[0].split('#')[0].split(/(\/\d*)$/)[0];
    return url;
}

console.log(stripQueryStringAndHashFromPath('http://localhost/story/89'));

function validateURL(url){ 让 lastSegment = url.split("/");if(lastSegment[(lastSegment.length)-1].match(/^[0 -9]$/))console.log("True Last Segmant"); } validateURL("http://localhost/demo/8");