gpt4 book ai didi

javascript - 为什么 RegExp.rightContext 在匿名函数中引发无效访问错误?

转载 作者:行者123 更新时间:2023-11-30 18:32:38 25 4
gpt4 key购买 nike

此函数在 Chrome 中引发“无效访问”错误,在 IE 中返回错误结果 (pirate_bar_pirate_baz),并在 Firefox 中按预期工作 (pirate_bar_ninja_baz)。如果您从正则表达式中删除全局标志,它可以正常工作,但仅适用于第一个“foo”而不是两者。有什么问题?

regex = /foo/g;
//regex = /foo/;

"foo_bar_foo_baz".replace(regex, function(str) {
if (RegExp.rightContext == "_baz") {
return "ninja";
} else {
return "pirate";
}
});

最佳答案

如评论所述,许多旧的 RegExp 属性已被弃用。使用另一种语法更安全(通常更短)

var regex=  /foo(?=_bar)?/g;
"foo_bar_foo_baz".replace(regex, function(a, b){
return b? "ninja":"pirate";
});

返回值:(字符串)pirate_bar_ninja_baz

关于javascript - 为什么 RegExp.rightContext 在匿名函数中引发无效访问错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9167100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com