Javascript 将正则表达式应用于跨多行的数据-“;通用汽车公司;旗不';行不通
我的源数据如下所示:Javascript 将正则表达式应用于跨多行的数据-“;通用汽车公司;旗不';行不通,javascript,regex,multiline,Javascript,Regex,Multiline,我的源数据如下所示: ab ab 我在其上运行以下命令: function lintPost(postText) { var replacements = { a : "4", b : "BBBB" } for (var pattern in replacements) { if (replacements.hasOwnProperty(pattern)) { var postText = postText
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
这意味着,尽管同时使用了全局和多行标志,regexen仍然只应用于第一行-JS似乎在第一行中断时停止匹配
输出应该是
4BBBB
4BBBB
我试着只使用g,只使用m,甚至不使用y
为什么JavaScript与源数据中的其他行不匹配?
在String.replace方法中使用flags参数是非标准的。使用带有相应标志的RegExp对象,而不是使用此参数
因此,以这种方式更改代码:
var postText.replace(new RegExp(pattern,"gm"), replacements[pattern]);
你能提供一把小提琴吗?哇。先生,你是个天才。应该更仔细地阅读MDN!此解决方案有效-我将接受5分钟后的一次,因此让我。谢谢大家!@顺便说一句,在这种情况下,您不需要
m
标志。