将方括号内容替换为html

时间:2015-01-31 10:50:42

标签: javascript jquery regex

我尝试更改代码突出显示标签,以匹配Alex Gorbatchev的语法荧光笔。

这是我的源代码的样子:

[csharp]//awesome code[/csharp]

这应该是这样的:

<pre brush: csharp>//awesome code</pre>

我想将允许的标签放入数组中。所以伪代码将是这样的:

$.each(allowedValues,function(index,value){
  MagicReplaceFunction(value);
}

所以在我从代码突出显示器

调用方法之前,我需要更改标签

jQuery可用。

1 个答案:

答案 0 :(得分:1)

使用string.replace功能。

> "[csharp]//awesome code[/csharp]".replace(/\[csharp\]([\s\S]*?)\[\/csharp\]/g, "<pre brush: csharp>$1</pre>")
'<pre brush: csharp>//awesome code</pre>'

[\s\S]*?非贪婪地匹配任何空格或非空格字符。所以,

  • \[csharp\]匹配起始[csharp]代码。
  • ([\s\S]*?)捕获任意数量的中间字符。
  • \[\/csharp\]匹配结束[/csharp]代码。
  • 将匹配的字符替换为<pre brush: csharp>加上组索引1加</pre>内的字符将为您提供所需的输出。