需要正则表达式在*粗体之间制作文本

时间:2012-07-13 07:31:11

标签: javascript html regex

我试图在*之间加粗文字,就像*bold*我在JavaScript中尝试正则表达式,但我不知道为什么它不起作用。

var bold = /\*(.*?)\*/gim;
var replacedText = replacedText.replace(bold, function($0,$1){
    return $1?$0:'<b>' + $0 + '</b>';
});

谢谢你们这里是最后的答案

被修改

var bold = /\*(.*?)\*/gim;
var replacedText = replacedText.replace(bold, function($0,$1){
    return $1 ? ('<b>' + $1 + '</b>') : $0;
});

2 个答案:

答案 0 :(得分:4)

正则表达式没问题,但你的逻辑不是:

var replacedText = replacedText.replace(bold, function($0,$1){
    return $1 ? ('<b>' + $1 + '</b>') : $0;
});

条件被颠倒了,无论如何你应该在替换时使用$1而不是$0(后者包括星号)。

答案 1 :(得分:1)

类似的东西:

function makeBold(id) {

  var re = /(\*)([^*]*)(\*)/g;

  var el = document.getElementById(id);
  el.innerHTML = el.innerHTML.replace(re, '<b>$2</b>');
}

应该让你入门。