Javascript替换匹配的组

时间:2012-06-12 22:51:54

标签: javascript regex

我正在尝试构建一个文本格式化程序,它会根据换行符将p和br标记添加到文本中。我目前有这个:

s.replace(/\n\n/g, "\n</p><p>\n");

这对于创建段落结尾和开头非常有效。但是,试图找到实例的效果并不好。尝试进行匹配的组替换不起作用,因为它忽略括号并替换整个正则表达式匹配:

s.replace(/\w(\n)\w/g, "<br />\n");

我尝试删除g选项(仍然替换了整个匹配,但仅限于第一场比赛)。还有另一种方法吗?

谢谢!

2 个答案:

答案 0 :(得分:20)

您可以捕获您不想替换的部分,并将其包含在替换字符串中,其中包含$,后跟组号:

s.replace(/(\w)\n(\w)/g, "$1<br />\n$2");
有关在替换字符串中引用输入字符串部分的更多信息,请参阅MDN文档中的

See this section

答案 1 :(得分:2)

也抓住周围的人物:

s.replace(/(\w)(\n\w)/g, "$1<br />$2");