我正在尝试构建一个文本格式化程序,它将根据换行符将 p 和 br 标记添加到文本中。我目前有这个:
s.replace(/\n\n/g, "\n</p><p>\n");
这对于创建段落结尾和开头非常有效。但是,尝试查找
实例效果不佳。尝试进行匹配组替换不起作用,因为它忽略括号并替换整个正则表达式匹配:
s.replace(/\w(\n)\w/g, "<br />\n");
我试过删除 g 选项(仍然替换整个匹配,但仅在第一场匹配)。还有另一种方法可以做到这一点吗?
谢谢!
我正在尝试构建一个文本格式化程序,它将根据换行符将 p 和 br 标记添加到文本中。我目前有这个:
s.replace(/\n\n/g, "\n</p><p>\n");
这对于创建段落结尾和开头非常有效。但是,尝试查找
实例效果不佳。尝试进行匹配组替换不起作用,因为它忽略括号并替换整个正则表达式匹配:
s.replace(/\w(\n)\w/g, "<br />\n");
我试过删除 g 选项(仍然替换整个匹配,但仅在第一场匹配)。还有另一种方法可以做到这一点吗?
谢谢!
您可以捕获不想替换的部分并将它们包含在替换字符串中,$
后跟组号:
s.replace(/(\w)\n(\w)/g, "$1<br />\n$2");
有关在替换字符串中引用部分输入字符串的更多信息,请参阅 MDN 文档中的此部分。
还可以捕捉周围的字符:
s.replace(/(\w)(\n\w)/g, "$1<br />$2");