在每组数字前面的字符串中插入字符

时间:2017-11-07 19:52:53

标签: javascript regex

我有一个可以使用此格式的字符串:"4 4 8 16 16"但也可以使用其他分隔符:"4, 4, 8, 16, 16""4-4-8-16-16"。 我想把它变成这样:"C/4 C/4 C/8 C/16 C/16"。 使用str.replace(/(?=\d)/g, 'C/')时,我得到以下错误结果:"C/4 C/4 C/8 C/1C/6 C/1C/6"。 有人有解决方案吗?当字符串变大时,使用for循环似乎很快就会变得非常低效。

1 个答案:

答案 0 :(得分:4)

您可以将所有非数值替换为所需部分,并且当它具有前导空格时,您需要对结果进行切片。

var array = ["4 4 8 16 16", "4, 4, 8, 16, 16", "4-4-8-16-16"];

console.log(array.map(s => s
    .split(/\D+/)
    .map(s => 'C/' + s)
    .join(' ')
));

另一个拆分和重新组装零件的提案。

{{1}}