簡體   English   中英

用數組中的值替換字符串中的特定字符

[英]Replace specific characters in string with values from array

我正在構建一個Web應用程序,並從服務器獲取一些描述。 我得到的那些字符串有時在其中包含特定的字符,應將其替換為適當的值。 字符串的示例如下所示:

let str = 'Every next purchase provides you with additional %@ days 
of bonuses, up to %@ days.'

我需要用適當的值替換'%@'。 獲取這些值的最佳方法可能是數組,因為文本可能具有一個'%@'或更多。 我一直在考慮通過子字符串方法處理此問題,但是我不確定這是否是最好的方法。

值的示例可能類似於[2,5]。 然后結果應該是: 'Every next purchase provides you with additional 2 days of bonuses, up to 5 days.'

謝謝你的幫助。

使用正則表達式和字符串的替換方法替換字符串中的字符。 在該過程之后,它將返回新的字符串。

let str = 'Every next purchase provides you with additional %@ days'; 
let regex = /%@/gi;
console.log(str.replace(regex, 'yourvalue'));

這取決於您如何替換它,可以使用循環遍歷並替換為具有相同值的數組值(而不是唯一值),這又取決於您要實現的目標。

 const str = 'Every next purchase provides you with additional %@ days %@'; const array = ['value1', 'value2']; const count = (str.match(/%@/gi) || []).length; const regex = /%@/; let newString; for (let i = 0; i < count; i++) { newString = i === 0 ? str.replace(regex, array[i]) : newString.replace(regex, array[i]); alert(newString); } 

關於substring() :該方法從兩個SPECIFIC索引之間的字符串中提取字符。 由於您是從服務器獲取數據,並且我相信它是動態數據,並且這些字符的索引可以更改,因此使用substring()可能無濟於事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM