字符串替换为正则表达式,即奇怪的结果
String replace with regex, ie strange results
为什么我有这个结果?
"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"
铬: 43.0.2357.124 m
IE:11.0.10011.0
您误用了compile
方法。
警告:
compile
方法已弃用,不应使用它。改为创建新的RegExp
对象。
它的原型是:
regexObj.compile(pattern, flags)
因此,您必须向它传递一个新模式,该模式将替换实例的模式。
在 IE 下,调用
compile()
会产生正则表达式/(?:)/
这是一个空正则表达式,与"hello world"
开头的空字符串匹配。也没有g
标志,因此您最终会在字符串前面附加''
。在Chrome下,
compile()
返回undefined
,因此不会进行替换。
相关文章:
- 用“$$$”替换文本,在Javascript中给出截断的结果
- 如何在 JavaScript 中将数组中的 [ ] 替换为 var 结果
- 试图通过克隆节点来替换 HTML,但得到奇怪的结果
- 在使用Protractor进行测试时,我可以用json文件替换结果,而不是调用实际的REST端点
- 如何使jQuery插件自动完成像谷歌替换结果
- 如何使用regex在以前的搜索结果中进行搜索和替换
- 正则表达式 - 替换方法从字符串中删除运算符产生不希望的结果
- 将通过 AJAX 上传到 DIV 的变量传递到同一 DIV 中,并将内容替换为结果
- JS中的多个字符替换 - 如何在同一函数中停止对先前结果的替换
- 正则表达式第一个结果($ 1)替换为变量的属性
- 正则表达式替换的意外结果
- 在 ajax提交后将表单替换为结果
- 如何使用AJAX替换json_encode返回结果的内部html
- 如果计算结果小于225,则将值替换为225
- Javascript替换regex剪切结果
- 对ng重复的结果使用replace将下划线替换为空格
- 将选择框选项替换为JSON结果
- javascript中的文本替换没有得到预期的结果
- 根据正则表达式搜索结果替换单词
- JavaScript用函数结果替换文本中的每个匹配