我正在尝试制作一个应该替换字符串的脚本。这是我当前的替换功能的作用:
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
应该包装在标记中,但是我不确定如何执行这样的操作。非常感谢您的任何投入!
答案 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]"))