用椭圆替换url

时间:2017-04-11 14:01:49

标签: javascript jquery

我正在显示每个页面的网址路径,以显示用户的确切位置。就像用户来到家 - > mobile->设计然后我显示用户路径,如“家庭/移动/设计”。一切都工作正常,但对于移动我必须隐藏家庭和设计之间的内容,如家庭/.../设计。我不确定如何实现这一点。有人可以提供帮助....感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

编辑:

切换内容的新示例:

var url = 'home/mobile/design';

var start = url.indexOf('/');
var end = url.lastIndexOf('/');
var finalString = url.substring(0,start+1) + '...' + url.substring(end, url.length);

$('#myURL').text(finalString);

$('#myURL').click(function(){
 if(!$('#myURL').hasClass('toggle')){
    $('#myURL').text(url);
  $('#myURL').addClass('toggle');
  }else{
    $('#myURL').text(finalString);
  $('#myURL').removeClass('toggle');  
  }
})

https://jsfiddle.net/2mq0dwbd/1/

此代码将执行您想要的操作:

var url = 'home/mobile/design';

var start = url.indexOf('/');
var end = url.lastIndexOf('/');

alert(url.substring(0,start+1) + '...' + url.substring(end, url.length))

如果您有更多"部分"此代码也将考虑其他变体。在里面它将只采取第一个和最后一个:

home/some/deep/section/goes/here

结果:

home/.../here

当然,您可以使用它并进行修改以满足您的特定需求。

希望它有所帮助!

小提琴: https://jsfiddle.net/2mq0dwbd/

答案 1 :(得分:1)

如果您不想使用切片/子字符串,可以使用正则表达式,从而产生较少量的代码:

var test = 'home/mobile/design';
test.replace(/\/.*\//, '/.../'); // home/.../design

它也适用于不同的版本:

var test2 = 'home/mobile/design/test'; 
test2.replace(/\/.*\//, '/.../'); // home/.../test