var record = "HENRY|5|58|L581"
如何修改我的上面:Javascript:如何替換兩個分隔符之間的文本?
record now equals "HENRY|Five|58|L581"
我知道如何檢索索引的第一個「|」和第二個'|' ..我知道如何檢索數字'5'成一個字符串。
但我不知道如何真正取代5字五。
該部分| 5 |可能是從1-50
var record = "HENRY|5|58|L581"
如何修改我的上面:Javascript:如何替換兩個分隔符之間的文本?
record now equals "HENRY|Five|58|L581"
我知道如何檢索索引的第一個「|」和第二個'|' ..我知道如何檢索數字'5'成一個字符串。
但我不知道如何真正取代5字五。
該部分| 5 |可能是從1-50
你可以這樣做,例如:
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();
這是你想達到的目的嗎?
UPDATE
如果你想要的任何號碼,您可以將它設置成一個函數:
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。
在你提出的建議之後,我會如何將它變成一個變量? recordChanged =「HENRY | five | 58 | L581」....像這樣 – Gast1
這是如此接近,但變量不再是一個正常的變量,它是一個數組嗎?我怎樣才能讓數組重新返回一個常規的字符串變量? – Gast1
@ Gast1看到**更新** – DaGLiMiOuX
喜歡的東西,任何號碼?
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
});
問題是有可能是另一個| 5 |在記錄的某個地方。我需要確保我更改| 5 |在字符串的開頭。 – Gast1
這是在你編輯之前,你說要替換任何數字。 –
@harsha OP編輯。現在我不知道他想要什麼。 –
我相信你不想取代任何號碼與「十一五」,要與代表數的實際字符串替換。
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("|");
如果它的任何數字,你還想有五個來取代它? –
如果它是從1到50的任何數字,你應該首先有一個從'一'到'五十'的字符串數組,然後取這個數字,給它添加一個,並在該特定索引處找到字符串,獲取字符串並執行更換 –