将文本替换为转到textarea的字符串中的换行符

时间:2016-06-17 08:34:42

标签: javascript html textarea innerhtml hta

我正在制作一个HTA-App,用于格式化一长串数字以匹配Microsoft Dynamics AX中的过滤器。

脚本从剪贴板中获取列表并将其格式化为段落á26个数字并最终将其打印到textarea。

我的问题:我不知道如何用段落的换行符替换文本。

我尝试了str.replace("text", "\r")以及str.replace("text", "\n"),但它无法正常工作。

这可能有点复杂,但它运作良好而快速,不论是段落..

这是脚本:

function start() {
  document.getElementById("dynamic").innerHTML = '<textarea id="to"></textarea>';
  document.getElementById("backbutton").innerHTML = '<img onClick="reset()" id="Back" src="src/back.png" alt="Zurück">';

  var cnt = 0;
  document.getElementById("to").innerHTML = window.clipboardData.getData('Text');
  var to = document.getElementById("to").value;

  var num = to.search(" ");
  if (num > 0) {
    for (num = 1; num > 0; cnt++) {
      var num = to.search(" ");
      if (cnt > 26) {
        var to = to.replace(" ", "ABSATZ");
        var cnt = 0;
      } else {
        var to = to.replace(" ", "\,LEER");
      }
    }

    for (nex = 1; nex > 0;) {
      var nex = to.search("LEER");
      var to = to.replace("LEER", " ");
    }

    for (nex2 = 1; nex2 > 0;) {
      var nex2 = to.search("ABSATZ");
      var to = to.replace("ABSATZ", "PARAGRAPHS HERE");
    }
  }
  document.getElementById("to").innerHTML = to;
}

1 个答案:

答案 0 :(得分:0)

带有字符串的

replace只会替换第一个匹配项。要替换所有匹配项,您需要使用带有g标志的正则表达式:

str = str.replace(/text/g, "\n");

请务必转义正则表达式中特殊的任何字符。

您只需要声明变量一次。在代码中的每个变量赋值之前放置var既不必要又令人困惑。