我有一个像这样的降价字符串:
var str = "# This is a title ## This is a subtitle ###Paragraph title";
我想为每个标题添加一个#标签,所以当markdown呈现为HTML时,它们都会呈现为下面的标题标记。我想实现以下字符串:
var str = "## This is a title ### This is a subtitle ####Paragraph title";
我尝试过简单的替换:
str.replace("###", "####");
但是现在当我去上面的下一个标签时,它会匹配下面标签的实例,因为它还有2个标签:
str.replace("##", "###");
这不好,我想这需要用正则表达式来完成。是否有可能以我想要的方式匹配和替换它们以及如何完成?
答案 0 :(得分:3)
使用分组非常简单。
使用replace(/(#+)/g, "$1#")
Online Demo左侧有正则表达式解释。
说明:
"搜索所有一个或多个#并用一个额外的#&#34替换每个匹配的组;
var str = "# This is a title ## This is a subtitle ###Paragraph title".replace(/(#+)/g, "$1#");
document.write(str);

答案 1 :(得分:0)
要用n + 1个哈希替换n个哈希字符串的每个实例,可以使用str.replace(/#+/g, '$&#')