Javascript 用其他字符替换字符串中的最后一个正斜杠

Javascript 用其他字符替换字符串中的最后一个正斜杠,javascript,jquery,regex,replace,Javascript,Jquery,Regex,Replace,我试图替换一系列url字符串中的最后一个正斜杠,将该正斜杠替换为数字符号,如下所示- http://example.com/about/our-company 到 使用JS和jQuery,我尝试对每个字符串应用replace函数,但不确定如何只针对最后一个正斜杠 $('.submenu a').each(function() { var url = $(this).attr('href'); url = url.replace(/\//g, '#'); console.

我试图替换一系列url字符串中的最后一个正斜杠,将该正斜杠替换为数字符号,如下所示-

http://example.com/about/our-company

使用JS和jQuery,我尝试对每个字符串应用replace函数,但不确定如何只针对最后一个正斜杠

$('.submenu a').each(function() {
    var url = $(this).attr('href');
    url = url.replace(/\//g, '#');
    console.log(url);
    // replaces all
});
试试这个:

var str = "http://one/two/three/four";
console.log(str.replace(/\/(?=[^\/]*$)/, '#'));
也就是说:“替换后面不包含任何内容或不包含其他斜杠的字符的斜杠,一直到结尾。”

一个简单的解决方案:

var str="http://example.com/about/our-company";
var tmp=str.split("").reverse().join("");
tmp=tmp.replace("/","#");
str=tmp.split("").reverse().join("");

//output:

str = http://example.com/about#our-company

您可以尝试根据
/
拆分Url:

url = 'http://example.com/about/our-company';
tokens = url.split('/');
expected_url = tokens.slice(0, tokens.length-1).join('/') + '#' + tokens[tokens.length-1];

console.log(expected_url);
# Prints 'http://example.com/about#our-company'

谢谢乌特卡诺斯!这是完美的工作,除了我意识到所有的URL都是在末尾用斜杠生成的。。。啊!假设总是这样,有没有类似的方法来瞄准最后一个正斜杠?我知道,我可能应该用另一种方式来做这件事。这会使模式变得非常复杂。最简单的方法是首先去掉尾随的斜杠(以后可以再加回来)。所以:
var str=”http://one/two/three/four/“。替换(/\/$/,”)正确,这可能是最平滑的选项。再次感谢。
var str="http://example.com/about/our-company";
var tmp=str.split("").reverse().join("");
tmp=tmp.replace("/","#");
str=tmp.split("").reverse().join("");

//output:

str = http://example.com/about#our-company
url = 'http://example.com/about/our-company';
tokens = url.split('/');
expected_url = tokens.slice(0, tokens.length-1).join('/') + '#' + tokens[tokens.length-1];

console.log(expected_url);
# Prints 'http://example.com/about#our-company'