在Javascript中分割字符串但保留分隔符

4
var string = 'Animation/rawr/javascript.js'

//expected output 
// ['Animation/', 'rawr/', 'javascript.js']

我在分割这个字符串时遇到了麻烦。请帮忙解决一下?

string.split(/(/)/)

(将字符串按左右括号进行分割)

可能是JS string.split() without removing the delimiters的重复问题。 - Anderson Green
2个回答

9

您可以使用正则表达式,而不是split函数,使用''.match()函数来完成这个操作:

var str = 'Animation/rawr/javascript.js';
var tokens = str.match(/[^\/]+\/?|\//g);

第一部分[^\/]+\/?尽可能匹配多个非正斜杠字符,可选择以/结尾。 第二部分\/(在或:|后面)匹配单个正斜杠。


-1
如果你想要进行分割,就必须在后面添加“/”。但更高效的方法是使用正则表达式。
分割并在后面添加“/”:

var string = 'Animation/rawr/javascript.js';
var arr = string.split("/");

arr.forEach(function(e, i, a) {
  a[--i] += "/";
});

document.write(JSON.stringify(arr));


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接