繁体   English   中英

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

[英]Replace last forward slash in string with other character

我试图用一系列url字符串替换最后一个正斜杠,用数字符号交换正斜杠,就像这样 -

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

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(/\/(?=[^\/]*$)/, '#'));

这就是说:“替换斜线后面跟着没有任何东西或者不包含另一个斜线的字符,直到最后。”

您可以尝试根据/分割网址:

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'
$('.submenu a').each(function() {
    var url = $(this).attr('href');
    var idx = url.lastIndexOf("/");
    url = url.substring(0, idx) + '#' + url.substring(idx+1);
    console.log(url);
});

简单的解决方案:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM