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

如何将以上内容更改为:

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

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

但我不知道如何用单词 5 实际替换 5。

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

4

3 回答 3

2

类似的东西?

record = record.replace('|5|', '|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
});
于 2013-05-22T11:12:41.850 回答
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();
}

演示

于 2013-05-22T11:14:17.830 回答
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("|");
于 2013-05-22T11:18:47.950 回答