把手JS替换部分字符串

时间:2017-02-15 09:42:27

标签: javascript node.js handlebars.js

我试图创建一个名为replace的帮助器。我知道已有一个,但对于我的生活,我似乎无法弄清楚如何更换一部分字符串并返回其余部分

<div class="entry">
  <h1>{{#replace "&" title}}and{{else}}{{/replace}}
</h1>
  <div class="body">
    {{body}}
  </div>
</div>

{ 
  title: "The Amazing Red & Tshirt", 
  body: "This is a short story about the red t-shirt"
}

辅助

Handlebars.registerHelper('replace', function( find, replace, options) {
    var string = options.fn(this);
    return string.replace( find, replace );
});

我似乎能做的就是替换整个字符串,而不是字符串的一小部分。在这种情况下,取代&amp;用词和符号。

我确定这很容易,但除了用单词和替换整个块之外,我似乎无能为力。

任何建议都非常感谢

1 个答案:

答案 0 :(得分:3)

什么是var string = options.fn(this);在帮助者内部受到什么影响,比如两个括号结构之间:

{{#helperName}}this{{/helperName}}

那么你现在正在做的帮助电话是:

  1. 尝试替换find = '&'
  2. 中的this = 'and'
  3. 与您的title = 'The Amazing Red & Tshirt'
  4. 你应该做的就是用这种方式打电话给你的助手:

    {{#replace "&amp;" "and"}}{{title}}{{/replace}}
    

    请注意整个实体作为参数而不是单个&amp; 字符传递。