Nodejs – 拆分string

我有以下string:

'SCAR-20 | Sand Mesh (Battle-Scarred)' 

我需要将其分成3个不同的部分,我的输出应该是3个variables – 例如:

 var part1 = 'SCAR-20'; var part2 = 'Sand Mesh'; var part3 = 'Battle-Scared'; 

虽然string会改变string的结构将永远是一样的:

 'part1 | part2 (part3)' 

我在正则expression式很糟糕,但这是有效的;

 var str = 'SCAR-20 | Sand Mesh (Battle-Scarred)' var regex = /(.+) \| (.+) \((.+)\)/ var match = str.match(regex); var part1 = match[1]; var part2 = match[2]; var part3 = match[3]; 

DEMO

你可以使用这个正则expression式来获得它:

 var re = /^(.*).?\|(.*)\((.*)\)/; var str = 'SCAR-20 | Sand Mesh (Battle-Scarred)'; var m; m = str.match(re,''); var firstPart = m[1]; var secondPart = m[2].trim(); var thirdPart = m[2]; 

或者没有正则expression式:

 var first = 'part1 | part2 (part3)'.split('|'); var second = first[1].split('('); var part1 = first[0].trim(); var part2 = second[0].trim(); var part3 = second[1].substring(0, second[1].indexOf(')')).trim(); console.log(part1, part2, part3);