我以developer.mozilla.org官方文档为例,您可以更轻松地回答:
var names = "Harry Trump; Fred Barney; Helen Rigby; Bill Abel; Chris Hand";
var re = / \ s *; \ s * /;
var nameList = names.split (re);
此正则表达式生成由各种元素除以字符;
形成的数组。
我的问题是:我想与提取它的元素之外的数组相关联,即;
。
基本上我们的目标是得到这样的东西:
[
{
";": ["Harry Trump"]
},
{
";": ["Fred Barney"]
}
...
]
而不是
[ "Harry Trump", "Fred Barney" , ... ]
你想把它们绑起来吗?
答案 0 :(得分:2)
您可以使用解决方案https://jsfiddle.net/fq3238ku/1/
var names = "Harry Trump, Fred Barney, Helen Rigby, Bill Abel, Chris Hand";
var splitName = names.split(',');
var data = [];
for(var i in splitName){
data[i] = {";" : [splitName[i]]};
}
console.log(data);

答案 1 :(得分:2)
如果你的分隔符是可变的,你可以这样做
let names = "Harry Trump, Fred Barney, Helen Rigby, Bill Abel, Chris Hand"
let re = /\s*(,)\s*/
let res = names.split(re).map(
(currentValue, index, array) => {
if (index%2!=0) {
return {
[currentValue]: (array[index-1] )
}
}
}
)
.filter((n)=>n)
console.log(res)

答案 2 :(得分:0)
您想要实现的目标根本无法实现。在密钥;
下有值后,分配另一个值只会覆盖前一个值。