我有以下字符串:
'SCAR-20 | Sand Mesh (Battle-Scarred)'
我需要将其分为3个不同的部分,我的输出应该是3个变量 - 例如:
var part1 = 'SCAR-20';
var part2 = 'Sand Mesh';
var part3 = 'Battle-Scared';
虽然字符串会改变,但字符串的结构总是一样的:
'part1 | part2 (part3)'
答案 0 :(得分:2)
您可以使用此正则表达式来获取它:
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];
答案 1 :(得分:2)
我在正则表达式上非常糟糕,但这很有效;
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];
答案 2 :(得分:0)
或者没有正则表达式:
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);