如何用纯正则表达式将String.replace()字符串从小写变为大写?

问题描述 投票:0回答:2

我想用 JavaScript 将字符串中的某些字符替换为大写,如下所示。

来源:“abcdefgh”

期望:“ab-CD-ef-gh”

我的方法是:

let str = 'abcdefgh';
let result = str.replace(/ab(.\*)ef(.\*)/g, (...args) =\> \`ab-${args\[1\].toUpperCase()}-ef-${args\[2\]}\`);
console.log(result);

但我尝试找到一种纯粹的正则表达式方式来做到这一点。

代码是这样的:

let str = 'abcdefgh';
let result = str.replace(/ab(.\*)ef(.\*)/g, 'ab-\\L$1-ef-$2'));
console.log(result);

结果是

ab-Lcd-ef-gh

好像不行。

请帮忙,谢谢

javascript regex
2个回答
0
投票

尝试一下并告诉我

let str = 'abcdefgh';
let result = str.replace(/ab(.)(.)ef(.)(.)/g, 'ab-\\U$1$2-ef-$3$4');

0
投票

dd

let str = 'abcdefgh';
let result = str.replace(/(..)(..)(.*)/,
    (m, g1, g2, g3) => g1 + "-" + g2.toUpperCase() +
                       g3.replace(/(..)/g, "-$1"));
console.log(result);

© www.soinside.com 2019 - 2024. All rights reserved.