如何替换两个分隔符之间的文本

Javascript: How do I replace text between two delimiters?

本文关键字:分隔符 之间 文本 两个 何替换 替换      更新时间:2023-09-26
var record = "HENRY|5|58|L581"

如何将以上内容改为:

record now equals "HENRY|Five|58|L581"

我知道如何检索第一个'|'和第二个'|'的索引。我知道如何将数字"5"检索到字符串中。

但是我不知道如何用单词Five来代替这个5。

部分|5|可以是1-50中的任意数字

是这样吗?

record = record.replace('|5|', '|FIVE|');

以下编辑:

要用FIVE替换任何数字,您可以执行

record = record.replace(/'|'d+'|/, '|FIVE|');

如果你想根据数字来替换(也许当数字是10时你想要10),那么你必须做一些工作:

record = record.replace(/'|'d+'|/, function(str) {
     var number = parseInt(str,10);
     return 'FIVE'; // here build a new string and return it
});

您可以这样做,例如:

var record = "HENRY|5|58|L581"
var recordArray = record.split("|");
for (var i = 0; i < recordArray.length; i++) {
     if (recordArray[i] === "5") {
          recordArray[i] = "FIVE";
     }
}
record = recordArray.join("|"); // or record = recordArray.toString();

这是你想要达到的目标吗?

如果你想要任何数字,你可以把它设置成一个函数:

function changeNumber(textVar, valueToChange, replaceText) {
    var recordArray = textVar.split("|");
    for (var i = 0; i < recordArray.length; i++) {
        if (recordArray[i] === valueToChange) {
             recordArray[i] = replaceText;
        }
    }
    return recordArray.join("|"); // or recordArray.toString();
}
<<p>看到演示/strong>。

我假设你不想用"five"替换任何数字,你想用实际的字符串替换表示数字。

var repl = [0, 1, ....];
var to = ["zero", "one", ...];
var recordArray = record.split("|");
for (var i = 0; i < recordArray.length; i++) {
 recordArray[i] = to[indexOf(recordArray[i], repl)];
}
finStr = recordArray.join("|");