gpt4 book ai didi

javascript - 使用 RegEx 模式将字符串拆分为数组

转载 作者:行者123 更新时间:2023-11-30 12:24:33 25 4
gpt4 key购买 nike

我有一个字符串,我想拆分成一个数组。字符串看起来像这样:

'O:BED,N:KET,OT,N:JAB,FA,O:RPT,'

字符串可以包含任意数量的对象,例如

'O:BED,N:KET,OT,N:JAB,FA,O:RPT,X:BLA,GTO'

我想在 \w: 的实例上拆分这个字符串,例如 O:

所以我最终会得到这样的数组:

['O:BED','N:KET, OT','N:JAB,FA','O:RPT']

我正在使用以下代码:

var array = st.split(/^(\w:.+)(?=\w:)/g);

但是我最终得到这样的数组:

['','O:BED,N:KET,OT,N:JAB,FA,','O:RPT,']

似乎正则表达式是贪婪的,我应该怎么做才能解决它?

请注意,我正在使用 angularjs,最终我想以这样的方式结束:

   var objs = [
{type:O,code: BED, suf: ''},
{type:N, code: KET, suf: OT},
{type:N, code: JAB, suf: FA},
{type:O, code: RPT, suf: ''}
]

最佳答案

如果您的字符串格式正确,会容易得多。但是我们仍然可以通过额外的努力来完成任务。希望下面的代码对你有用。

var str = 'O:BED,N:KET,OT,N:JAB,FA,O:RPT,X:BLA,GTO';

var a = str.split(',');
var objs = [], obj, item, suf;

for(var i=0; i<a.length;){
item = a[i].split(':');

if(a[i+1] && a[i+1].indexOf(':') == -1){
suf = a[i+1];
i++;
}else{
suf = "";
}

obj = {
type: item[0],
code: item[1],
suf: suf
};

objs.push(obj);
i++;
}

console.log(objs);

关于javascript - 使用 RegEx 模式将字符串拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29896962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com