Javascript:如何在两个分隔符之间替换文本?

时间:2013-05-22 11:11:44

标签: javascript

var record = "HENRY|5|58|L581"

如何将上述内容更改为:

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

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

但我不知道如何用五字实际取代那个5。

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

3 个答案:

答案 0 :(得分:2)

那样的东西?

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

编辑后:

要用FIVE替换任何数字,你可以

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

如果您想根据数字替换某些东西(当数字为10时您可能需要TEN),那么您将需要做一些工作:

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

答案 1 :(得分:1)

您可以这样做,例如:

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

请参阅 demo

答案 2 :(得分:0)

我认为你不想用“五”替换任何数字,你想用代表数字的实际字符串替换。

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