Javascript 需要正则表达式来生成*粗体之间的文本
我尝试在Javascript 需要正则表达式来生成*粗体之间的文本,javascript,html,regex,Javascript,Html,Regex,我尝试在*之间加粗文本,就像*加粗*我尝试在JavaScript中使用正则表达式,但我不知道为什么它不起作用 var bold = /\*(.*?)\*/gim; var replacedText = replacedText.replace(bold, function($0,$1){ return $1?$0:'<b>' + $0 + '</b>'; }); var bold=/\*(.*)\*/gim; var replacedText=replacedT
*
之间加粗文本,就像*加粗*
我尝试在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(粗体,函数($0,$1){
返回$1?$0:“+$0+”;
});
谢谢你们,这是最后的答案
已编辑
var bold = /\*(.*?)\*/gim;
var replacedText = replacedText.replace(bold, function($0,$1){
return $1 ? ('<b>' + $1 + '</b>') : $0;
});
var bold=/\*(.*)\*/gim;
var replacedText=replacedText.replace(粗体,函数($0,$1){
返回$1(“+$1+”):$0;
});
正则表达式正常,但您的逻辑不正常:
var replacedText = replacedText.replace(bold, function($0,$1){
return $1 ? ('<b>' + $1 + '</b>') : $0;
});
var replacedText=replacedText.replace(粗体,函数($0,$1){
返回$1(“+$1+”):$0;
});
条件是相反的,在任何情况下,替换时都应该使用$1
,而不是$0
(后者包括星号)。类似于:
function makeBold(id) {
var re = /(\*)([^*]*)(\*)/g;
var el = document.getElementById(id);
el.innerHTML = el.innerHTML.replace(re, '<b>$2</b>');
}
函数makeBold(id){
变量re=/(\*)([^*]*)(\*)/g;
var el=document.getElementById(id);
el.innerHTML=el.innerHTML.replace(re,$2');
}
你应该开始了