var record = "HENRY|5|58|L581"
如何将上述内容更改为:
record now equals "HENRY|Five|58|L581"
我知道如何检索第一个'|'的索引和第二个'|' ..我知道如何将数字'5'检索到一个字符串中。
但我不知道如何用五字实际取代那个5。
部分| 5 |可以是1-50的任何数字
答案 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("|");