Javascript 寻找返回字符串位置的拆分变量

Javascript 寻找返回字符串位置的拆分变量,javascript,string,Javascript,String,我知道我可以使用str.split(/[\n]+/)将Javascript字符串拆分为行 但是,我还需要知道每一行在原始字符串中的位置 就是我要 myFunc(“ABC\nDEF\n\n\nGHI”) 归来 [“ABC”,0],“DEF”,4],“GHI”,10]] 我对返回的确切格式并不挑剔,我更愿意尽可能利用标准函数 所以,简单的答案会回来 [0,“ABC”],[4,“DEF”],[10,“GHI”]] 甚至 [0,3]、[4,7]、[10,13];;(开始/结束对) 或 [0,3]、[4,

我知道我可以使用
str.split(/[\n]+/)
将Javascript字符串拆分为行

但是,我还需要知道每一行在原始字符串中的位置

就是我要

myFunc(“ABC\nDEF\n\n\nGHI”)

归来

[“ABC”,0],“DEF”,4],“GHI”,10]]

我对返回的确切格式并不挑剔,我更愿意尽可能利用标准函数

所以,简单的答案会回来

[0,“ABC”],[4,“DEF”],[10,“GHI”]]

甚至

[0,3]、[4,7]、[10,13];;(开始/结束对)

[0,3]、[4,3]、[10,3];;(起始/长度对)


都很好。

您可以匹配非新行,并从匹配结果中获取索引

var regex=/[^\n]+/gm,
str=`ABC\nDEF\n\n\nGHI`,
M
结果=[]
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
结果.推送([m.索引,匹配]);
});
}

控制台日志(结果)您可以匹配非新行,并从匹配结果中获取索引

var regex=/[^\n]+/gm,
str=`ABC\nDEF\n\n\nGHI`,
M
结果=[]
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
结果.推送([m.索引,匹配]);
});
}

控制台日志(结果)大卫,所以不是编码服务。它在这里帮助您编写您遇到问题的代码。“帮助”部分有一篇关于的文章。到目前为止,您尝试了什么?我实际上是在寻找图书馆服务,而不是编码服务。:-)我希望有人能给我指出一个内置函数,在我编写一个10行函数来完成这项工作之前,我必须永远维护这个函数。而不是
。split
你可以使用这个函数接受第二个参数,你可以用它来指定搜索应该从哪个索引开始。使用第二个参数多次调用
.indexOf
将得到所需的结果。David,这不是编码服务。它在这里帮助您编写您遇到问题的代码。“帮助”部分有一篇关于的文章。到目前为止,您尝试了什么?我实际上是在寻找图书馆服务,而不是编码服务。:-)我希望有人能给我指出一个内置函数,在我编写一个10行函数来完成这项工作之前,我必须永远维护这个函数。而不是
。split
你可以使用这个函数接受第二个参数,你可以用它来指定搜索应该从哪个索引开始。使用第二个参数多次调用
.indexOf
,将得到所需的结果。