如何根据
下面的示例字符串数组切换字符串[
'PAP02-123-101-000-000-000-000-0000-SP-01-01',
'PAP02-123-102-000-000-000-000-0000-SUN-01-02',
'PAP02-123-102-000-000-000-000-0000-SUT-01-01'
]
这是最终输出
SP-01-01
SUN-01-02
SUT-01-01
以下是我能想到的实现所需输出的内容
const str = 'PAP02-123-102-000-000-000-000-0000-SUN-01-02';
const newStr = str.substring(str.indexof(str.match(/^(SP|SUP|SUN)$/)))
答案 0 :(得分:1)
/(SP|SUP|SUN|SUT)+-\d{2}-\d{2}/
匹配您的所有示例。请参阅此regex101 example。
[
'PAP02-123-101-000-000-000-000-0000-SP-01-01',
'PAP02-123-102-000-000-000-000-0000-SUN-01-02',
'PAP02-123-102-000-000-000-000-0000-SUT-01-01'
].forEach(str=>console.log(str.match(/(SP|SUP|SUN|SUT)+-\d{2}-\d{2}/)[0]));

答案 1 :(得分:1)
您可以split
,reverse
和destructure
。
此方法适用于任何字符串,因为无论每个标记的长度如何,都会获得最后三次出现。
var array = [
'PAP02-123-101-000-000-000-000-0000-SP-01-01',
'PAP02-123-102-000-000-000-000-0000-SUN-01-02',
'PAP02-123-102-000-000-000-000-0000-SUT-01-01'
];
var result = array.map((s) => {
let [a, b, c] = s.split('-').reverse();
return `${c}-${b}-${a}`;
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 2 :(得分:0)
将它们包起来:
var array = [
'PAP02-123-101-000-000-000-000-0000-SP-01-01',
'PAP02-123-102-000-000-000-000-0000-SUN-01-02',
'PAP02-123-102-000-000-000-000-0000-SUT-01-01'
];
var result = array.map(s => s.substr(35));
console.log(result);
.as-console-wrapper {
max-height: 100% !important;
top: 0;
}
答案 3 :(得分:0)
对于这三个项目,您可以在/ S。* /
上获得匹配的索引