需要正则表达式使文本在*bold之间

Need regular expression for making text between * bold

本文关键字:bold 之间 文本 正则表达式      更新时间:2023-09-26

我正在尝试在**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;
});

正则表达式可以,但您的逻辑不是:

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

条件被颠倒了,在任何情况下,替换时都应该使用$1而不是$0(后者包括星号)。

类似于:

function makeBold(id) {
  var re = /('*)([^*]*)('*)/g;
  var el = document.getElementById(id);
  el.innerHTML = el.innerHTML.replace(re, '<b>$2</b>');
}

应该让你开始。