用参数替换Javascript

时间:2018-11-04 01:23:41

标签: javascript frontend markdown

所以我正在做一个markdown编辑器,我想要一些功能,例如"This is *italics*".replace("*$1*","<i>$1</i>");

有什么简单的方法吗? (客户端,该文件将托管在Github Pages上,所以随机的npm包可能无济于事)

编辑:赞成和反对的人数相同。如果您告诉我为什么投票,那会有所帮助。

1 个答案:

答案 0 :(得分:1)

简短答案: 'This is *italics*'.replace(/\*(.+)\*/, '<i>$1</i>');


说明:使用RegExp是最简单的方法,特别是grouping section。 让我们简化/\*(.+)\*/

  1. 开头/和结尾RegExp定义了介于两者之间的事物实际上是\
  2. 我们需要在RegExp的开头和结尾检查星号but * is a quantity selector,因此我们需要使用.对其进行转义(基本上说:“嘿,下一个字符不是一个实际的选择器,但是有些文字”)
  3. 接下来,我们需要指定我们需要检查星号(即+)之间的any character,并且出现多次(即group
  4. 最后,我们需要parenthesis并告诉RegExp,我们要记住的是星号之间的东西,而不是整个东西,这就是$n起作用的地方。
  5. 使用这些括号,我们可以在替换字符串中执行n(其中1是匹配数量编号,在这种情况下为image)来替换匹配组