代码之家  ›  专栏  ›  技术社区  ›  Christian

通过regex将标记应用于给定数组中包含数字的字符串的spcefic字符

  •  0
  • Christian  · 技术社区  · 15 年前

    我正在用javascript/jquery编程。 比如,我有一个数组,其中包含一些数字[1,4,5]和一个字符串“theword”。 我想把那根绳子变成 "t<b>h</b>ew<b>or</b>d" . 使用regex最好的方法是什么?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Daniel Vandersluis    15 年前

    我要做的是:

    function boldAt(string, positions)
    {
      var stringLen = string.length;
      var stringArr = string.split("");
    
      for (var i = 0; i < positions.length; i++)
      {
        var pos = positions[i];
    
        # Make sure that the given position is not out of bounds on the string
        if (pos < stringLen)
        {
          stringArr[pos] = "<b>" + stringArr[pos] + "</b>";
        }
      }
    
      return stringArr.join("").replace(/<\/b><b>/g, '');
    }
    
    boldAt("theword", [1,4,5]); // returns "t<b>h</b>ew<b>or</b>d".
    

    基本上,它的作用是将字符串拆分成一个字符数组,向指定的字符添加粗体标记,将数组重新连接成一个字符串,然后使用简单的正则表达式replace组合相邻的粗体标记。它还忽略大于字符串长度的给定位置。