如何在javascript中进行字符串替换

时间:2017-03-11 13:14:02

标签: javascript replace substring indexof

我正在制作一个网络应用,在我的管理方面,还有一个添加动态输入的功能。管理员将在git config --global credential.helper manager 中输入文字,如:

textarea

我想要达到的目标是,我想将第一个'sample: _4_' | 'sample2: _some_' 替换为',将第二个<p>替换为'和分隔符(</p> )满足,再次将第一个|替换为',将第二个<p>再次替换为'。最终输出将是

</p>

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

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

您可以使用replacesplitjoin组合的字符串上尝试使用此解决方案:

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

答案 2 :(得分:0)

试试这个

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/

答案 3 :(得分:0)

You've asked了解_ / <b>

取代</b>的方法

&#13;
&#13;
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));
&#13;
&#13;
&#13;