我正在构建一个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.'
感谢您的帮助。
答案 0 :(得分:0)
使用正则表达式和字符串的replace方法替换字符串中的字符。该过程完成后返回新字符串。
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()
可能无济于事。