gpt4 book ai didi

javascript - 对跨多行的数据应用正则表达式 - "gm"标志不起作用

转载 作者:行者123 更新时间:2023-12-02 17:34:52 24 4
gpt4 key购买 nike

我的源数据如下所示:

ab

ab

我在上面运行以下命令:

function lintPost(postText) {
var replacements = {
a : "4",
b : "BBBB"
}

for (var pattern in replacements) {
if (replacements.hasOwnProperty(pattern)) {
var postText = postText.replace(pattern, replacements[pattern], "gm");
console.log(postText);
}
}
return postText;
};

我得到以下信息:

4BBBB

ab

意思是,尽管使用了全局和多行标志,正则表达式仍然只应用于第一行 - JS 似乎在第一个换行符处停止匹配。

输出应该是

4BBBB

4BBBB

我尝试过仅使用 g,仅使用 m,甚至仅使用 y - 什么也没有。

为什么 JavaScript 与源数据中的其他行不匹配?

最佳答案

MDN states:

The use of the flags parameter in the String.replace method is non-standard. Instead of using this parameter, use a RegExp object with the corresponding flags.

所以这样改变你的代码:

var postText.replace(new RegExp(pattern,"gm"), replacements[pattern]);

关于javascript - 对跨多行的数据应用正则表达式 - "gm"标志不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22699485/

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