用string中的多个值替换 - Typescript

时间:2017-12-13 13:20:31

标签: javascript html angular typescript angular5

问题:

var str = "I have a <animal>, a <flower>, and a <car>.";

现在上面的字符串我想在下面替换Tiger,Rose和BMW

<animal> , <flower> and <car> 

请为此提出最佳方法。

我正在使用Typescript处理Angular 2应用程序。

2 个答案:

答案 0 :(得分:2)

您可以使用带有替换函数的正则表达式来评估每个匹配并返回相应的替换。

var str = "I have a <animal>, a <flower>, and a <car>.";

function replace(source : string, replacements : { [name:string]: string }) {
    return str.replace(  new RegExp("<([A-z]*)>", "g"), (m) => {
        return replacements[m.substring(1, m.length -1)];
    });
}

console.log(replace(str, {
    "animal" : "Tiger",
    "flower" : "Rose",
    "car" : "BMW"
}))

答案 1 :(得分:0)

如果您使用的是Typescript,则应根据https://www.typescriptlang.org/docs/handbook/basic-types.html使用let str = 'I have a <animal>, a <flower>, and a <car>.';声明您的字符串。请注意单引号,这是Angular Styleguide的推荐(例如使用 ng lint 在连续交付管道中。)

您可以替换代码中已有的占位符,而不是替换常用的javascript替换方法:

Screenshot code see the backticks here