"hello world" "hello world".repl-6ren">
gpt4 book ai didi

javascript - 用正则表达式替换字符串,即奇怪的结果

转载 作者:行者123 更新时间:2023-11-28 19:09:50 24 4
gpt4 key购买 nike

为什么我会得到这个结果?

"hello world".replace(/[']/gi, "\\'"); // on chrome => "hello world"
"hello world".replace(/[']/gi, "\\'"); // on ie => "hello world"

"hello world".replace((/[']/gi).compile(), "\\'"); // on chrome => "hello world"
"hello world".replace((/[']/gi).compile(), "\\'"); // on ie => "\'hello world"

Chrome:43.0.2357.124米

IE:11.0.10011.0

最佳答案

您滥用了 compile method .

Warning: The compile method is deprecated, you shouldn't use it. Create a new RegExp object instead.

它的原型(prototype)如下:

regexObj.compile(pattern, flags)

因此您必须向其传递一个新模式来替换实例的模式。

  • 在 IE 下,调用 compile() 会生成正则表达式 /(?:)/,它是一个空正则表达式,与开头的空字符串匹配“ Hello World ”。也没有 g 标志,因此最终会在字符串前面添加 \'

  • 在 Chrome 下,compile() 返回 undefined,因此不会进行替换。

关于javascript - 用正则表达式替换字符串,即奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30920621/

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