簡體   English   中英

需要正則表達式在*粗體之間制作文本

[英]Need regular expression for making text between * bold

我試圖在*之間加粗文本,像*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>');
}

應該讓你開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM