如何在 javascript 中替换字符串

How to do String replace in javascript

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

'sample: _4_' | 'sample2: _some_'

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

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

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

您可以使用 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>

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

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

试试这个

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("|"," ");

这是fiddle https://jsfiddle.net/j64u5em6/1/

也可以用 <b>/</b>

替换 _

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));