2012-07-13 78 views
2

之間創建文本的正則表達式我試圖在*之間加粗文本,比如*bold*我在JavaScript中嘗試正則表達式,但我不知道爲什麼它不起作用。需要在* bold

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; 
}); 

回答

3

正則表達式是確定的,但你的邏輯是不是:

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

條件進行了倒置,無論如何你應該使用$1替換而不是$0(後者包括星號)。

+0

非常感謝你的工作.. :) – 2012-07-13 07:38:08

1

喜歡的東西:

function makeBold(id) { 

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

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

應該讓你開始。