以特定方式拆分字符串JavaScript

时间:2017-10-23 15:03:27

标签: javascript regex

您好我想在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

2 个答案:

答案 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(/\/[^\/]*$/, "");

表达式如下:

  1. 从字符串结尾开始抓取所有内容。
  2. 之间应该没有/。
  3. 将其替换为