我试图在*
之间加粗文字,就像*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;
});
答案 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>');
}
应该让你入门。