var record = "HENRY|5|58|L581"
如何将以上内容更改为:
record now equals "HENRY|Five|58|L581"
我知道如何检索第一个“|”的索引 和第二个'|' .. 我知道如何将数字“5”检索到字符串中。
但我不知道如何用单词 5 实际替换 5。
部分|5| 可以是 1-50 之间的任何数字
var record = "HENRY|5|58|L581"
如何将以上内容更改为:
record now equals "HENRY|Five|58|L581"
我知道如何检索第一个“|”的索引 和第二个'|' .. 我知道如何将数字“5”检索到字符串中。
但我不知道如何用单词 5 实际替换 5。
部分|5| 可以是 1-50 之间的任何数字
类似的东西?
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
});
您可以这样做,例如:
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();
}
见演示。
我想你不想用“五”替换任何数字,你想用代表数字的实际字符串替换。
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("|");