您好我想在javascript中以特定方式拆分字符串,例如字符串是C:/ users / Me / AppData / elastic / elastic 1.6。我知道我可以使用split()方法拆分它,并使用pop()和shift()来获取第一个和最后一个拆分字符串,但我想将它拆分为,除了最后一个字符串。所以答案应该是“C:/ users / Me / AppData / elastic"
我是这样做的,
str.split(str.split("/").pop()).shift()
我得到了这样的出局,
C:/users/Me/AppData/
但我想要这样,
C:/users/Me/AppData
答案 0 :(得分:2)
听起来你说你想要删除路径中的最后一项。为此,您可以使用.lastIndexOf()
获取上一个/
位置,然后.slice()
使用-1
,如果它不是var str = "C:/users/Me/AppData/elastic/elastic 1.6";
var idx = str.lastIndexOf("/");
var res = str;
if (idx !== -1) {
res = str.slice(0, idx);
}
console.log(res);
。
var str = "C:/users/Me/AppData/elastic/elastic 1.6";
var res = str.split("/");
res.pop();
res = res.join("/");
console.log(res);

或者像这样,这与你的尝试类似,但可能会更慢:
this.items[i]["distance"]

只要最后一项不会出现在网址中的任何其他位置,您的原始解决方案就会有效。否则,您只会获得第一个拆分项目之前的部分。
答案 1 :(得分:0)
如果你想要正则表达式:
var str = "C:/users/Me/AppData/elastic/elastic 1.6";
str = str.replace(/\/[^\/]*$/, "");
表达式如下: