我有一个名为 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个字符。有人知道我要去哪里错了,可以指出正确的方向吗?
答案 0 :(得分:3)
您需要将返回的String.substring()值存储回siteUrl
变量中。还请注意,strings
是Javascript
上的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);