ini*_*lxy 10 javascript regex replace
我理解在JavaScript中,您可以执行正则表达式替换,并引用捕获组,如下所示:
> "Hello World 1234567890".replace(
/Hello (World) (1)(2)(3)(4)(5)(6)(7)(8)(9)(0)/,
"What's up $1");
"What's up World"
Run Code Online (Sandbox Code Playgroud)
这一切都很好.但是,如果我想引用第1组然后立即跟随"1",该怎么办?说我看什么"世界上有什么1".所以我写道:
> "Hello World 1234567890".replace(
/Hello (World) (1)(2)(3)(4)(5)(6)(7)(8)(9)(0)/,
"What's up $11");
"What's up 0"
Run Code Online (Sandbox Code Playgroud)
当然,在这种情况下,它引用的是组11,即"0",而不是组1后跟"1".
我怎么能解决这种歧义?
您可以使用String#replace回调函数参数:
str = "Hello World 1234567890";
repl = str.replace(/Hello (World) (1)(2)(3)(4)(5)(6)(7)(8)(9)(0)/, function(r, g) {
return "What's up " + g + '1';});
//=> What's up World1
Run Code Online (Sandbox Code Playgroud)