Javascript替换每个字符串的第一个字母?

时间:2019-07-14 01:58:55

标签: javascript regex

我正在尝试制作一个应该替换字符串的脚本。这是我当前的替换功能的作用:

let message2 = message1.replace(/hello/g, "[size=medium]h[/size]ello");

如您所见,这会将size=medium标签添加到单词的h。这很好,但是我希望它能在所有可能的大写形式下工作,并且仍然保持在大写形式。

例如: "hELLo"应替换为"[size=medium]h[/size]ELLo"

"HELLo"替换为"[size=medium]H[/size]ELLo"

只有h / H应该包装在标记中,但是我不确定如何执行这样的操作。非常感谢您的任何投入!

2 个答案:

答案 0 :(得分:3)

您可以使用捕获组:

message1.replace(/(h)(ello)/ig, "[size=medium]$1[/size]$2")

或者,向前看:

message1.replace(/h(?=ello)/ig, "[size=medium]$&[/size]")

答案 1 :(得分:1)

您可以尝试以下正则表达式:

var a = 'hello';
var b = 'HEllo';

console.log(a.replace(/^h/i, "[size=medium]$&[/size]"))
console.log(b.replace(/^h/i, "[size=medium]$&[/size]"))

如果只想替换h中的hello,则可以使用向前看:

var a = 'HEllo';
var b = 'Halo';

console.log(a.replace(/^h(?=ello)/i, "[size=medium]$&[/size]"))
console.log(b.replace(/^h(?=ello)/i, "[size=medium]$&[/size]"))