【问题标题】:Wrap each word in string with span using regular exp使用常规 exp 将字符串中的每个单词与 span 包装起来
【发布时间】:2017-07-15 10:19:00
【问题描述】:

如何使用正则表达式将文本中的每个单词替换为“span”?

var text = "1:393 1:838 3:936 1:998 1:1398 1:1652 1:1718 1:1806"

final op = "<span class="word">1:393</span><span class="word">1:838</span><span class="word">3:936</span><span class="word">1:998</span><span class="word">1:139</span>...."  

【问题讨论】:

    标签: javascript jquery regex


    【解决方案1】:

    如果分隔符始终是单个空格,则您实际上不需要正则表达式,只需在空格上拆分 (或 \b,如果您想要正则表达式),添加一些标记,并再次加入。

    var text = "1:393 1:838 3:936 1:998 1:1398 1:1652 1:1718 1:1806";
    
    var op = text.split(' ').map(function(w) {
        return '<span class="word">' + w + '------</span>';
    }).join('');
    
    document.body.innerHTML = op;
    .word {color : red}

    【讨论】:

      【解决方案2】:
      var op = '<span class="word">' + text.split(' ').join('</span><span class="word">') + '</span>'
      

      【讨论】:

        【解决方案3】:

        使用String#replace

        const text = "1:393 1:838 3:936 1:998 1:1398 1:1652 1:1718 1:1806";
        const result = text.replace(/\d:\d+/g, '<span class="word">$&</span>');
        
        console.log(result);

        【讨论】:

          【解决方案4】:

          这就是你需要的 (https://jsfiddle.net/6r005vgf/3/):

          var text = "1:393 1:838 3:936 1:998 1:1398 1:1652 1:1718 1:1806";
          
          //var final = "<span class='word'>1:393</span><span class='word'>1:838</span><span class='word'>3:936</span><span class='word'>1:998</span><span class='word'>1:139</span>....";
          
          var final_test = "<span class='word'>" + text.replace(/\s+/g, "</span><span class='word'>") + "</span>";
          
          //alert(final);
          alert(final_test);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-10-15
            • 2016-08-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-29
            • 1970-01-01
            相关资源
            最近更新 更多