为什么我的URL字符串没有缩短?

时间:2019-05-13 15:44:00

标签: javascript jquery html

我有一个名为 siteURL 的变量,该变量是使用 window.location.href 设置的。

我想剪掉最后10个字符,在本例中为... index.html。

var siteURL = window.location.href;

if (siteURL.endsWith('index.html')) {
   siteURL.substring(0, siteURL.length - 10);
}

//log the output
console.log(siteURL);

我正在尝试此操作,但它似乎并未删除最后10个字符。有人知道我要去哪里错了,可以指出正确的方向吗?

3 个答案:

答案 0 :(得分:3)

您需要将返回的String.substring()值存储回siteUrl变量中。还请注意,stringsJavascript上的inmutables(也请检查下一个引用:Are JavaScript strings immutable? Do I need a "string builder" in JavaScript?)。

var siteURL = "some/url/with/index.html";

if (siteURL.endsWith('index.html'))
{
   siteURL = siteURL.substring(0, siteURL.length - 10);
}

console.log(siteURL);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

但是,一种更好的方法是将String.replace()与正则表达式结合使用:

var siteURL = "some/url/with-index.html/index.html";
siteURL = siteURL.replace(/index\.html$/, "");
console.log(siteURL);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

答案 1 :(得分:1)

您正在执行操作,只需要实际分配值即可。

siteURL = siteURL.substring(0, siteURL.length - 10);

答案 2 :(得分:1)

您可以这样做:

var newStr = siteURL.substring(0, siteURL.length-10);

var newStr = siteURL.substr(0, siteURL.length-10);

var newStr = siteURL.slice(0, siteURL.length-10);

其中任何一个都可以工作:

console.log(newStr);