[英]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.