【问题标题】:Need regular expression for making text between * bold需要正则表达式来制作 * 粗体之间的文本
【发布时间】:2012-07-13 07:31:10
【问题描述】:

我正在尝试将 * 之间的文本加粗,例如 *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;
});

【问题讨论】:

    标签: javascript html regex


    【解决方案1】:

    正则表达式没问题,但你的逻辑不是:

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

    条件颠倒了,在任何情况下,替换时都应该使用$1 而不是$0(后者包括星号)。

    【讨论】:

      【解决方案2】:

      类似:

      function makeBold(id) {
      
        var re = /(\*)([^*]*)(\*)/g;
      
        var el = document.getElementById(id);
        el.innerHTML = el.innerHTML.replace(re, '<b>$2</b>');
      }
      

      应该让你开始。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-23
        • 1970-01-01
        • 2022-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多