【问题标题】:How to do String replace in javascript如何在javascript中进行字符串替换
【发布时间】:2017-03-11 13:14:01
【问题描述】:

我正在制作一个网络应用程序,在我的管理端有一个添加动态输入的功能。管理员将在textarea 中输入文本,例如:

'sample: _4_' | 'sample2: _some_'

我想要实现的是,我想将第一个 ' 替换为 <p> 并将第二个 ' 替换为 </p> 并且当分隔符 (|) 相遇时,再次替换第一个 '<p> 和第二个'</p>。最终输出将是

<p>sample: _4_</p> <p>sample2: _some_</p>

有可能吗?我真的不知道代码。谢谢!

【问题讨论】:

    标签: javascript replace substring indexof


    【解决方案1】:

    您可以使用splitjoin javascript 函数来替换字符串(实际上是char 数组)中的所有匹配项。

    试试这个:

    val = val.split("' | '").join("</p> <p>");
    val = val.split("'").join("<p>");
    val = val.slice(0,-3) + "</p>");  // Replace the last <p> to </p>
    

    【讨论】:

    • 您确定字符串包含完全这个:' | ' 吗?
    • 先生?我可以再问你几个问题吗?如果我在_4_ 做同样的事情怎么办?我想将第一个_ 替换为&lt;b&gt;,第二个替换为&lt;/b&gt;? @KobyDouek
    • X 替换为 X 可能有点棘手,您需要使用正则表达式 - 看看这个答案:stackoverflow.com/questions/24834072/… .如果您需要更多帮助,请告诉我。
    • @duterte 我已经回答了你关于如何替换_的问题
    【解决方案2】:

    您可以在字符串上使用replace 并结合使用splitjoin 来尝试此解决方案:

    val = val.split("' | '").join("<p> </p>");
    val = val.replace(/^'/,"<p>").replace(/'$/,"</p>"); // Replaces first "'" with <p> and last "'" with </p>
    

    【讨论】:

      【解决方案3】:

      试试这个

      var str = "'sample: _4_' | 'sample2: _some_'";
      
      var i=0;
      
      for(k=0;k<str.split("'").length+2;k++)
      {
      str=str.replace("'",function myFunction(){if(i==0) {i=1;return "<p>"; }if  (i==1){i=0;return "</p>";} });
      }
      
      str=str.replace("|"," ");
      

      这是小提琴 https://jsfiddle.net/j64u5em6/1/

      【讨论】:

        【解决方案4】:

        You've asked 也可以将 _ 替换为 &lt;b&gt;/&lt;/b&gt;

        var getReplacement = (function() {
          var replacements = {
            "'": {
              i: 0,
              elements: ["<p>", "</p>"]
            },
            "_": {
              i: 0,
              elements: ["<b>", "</b>"]
            }
          };
        
          return function(match) {
            var replacement = replacements[match];
            if (replacement) {
              return replacement.elements[replacement.i++ % replacement.elements.length];
            } else {
              return match;
            }
          };
        }());
        
        
        var str = "'sample: _4_' | 'sample2: _some_'";
        
        console.log(str.replace(/'|_/g, getReplacement));

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-23
          • 2018-01-11
          • 1970-01-01
          • 2011-07-25
          • 1970-01-01
          • 2011-01-09
          相关资源
          最近更新 更多