【问题标题】:Remove white space between words in a handlebar expression删除车把表达式中单词之间的空格
【发布时间】:2019-03-05 07:40:07
【问题描述】:

我有一个车把表达式,它给了我一个动态字符串。我想删除字母之间的空白并将其用作 div id。我知道我可以使用 JS 做到这一点。但是有没有办法在车把模板中做到这一点?

{{name}} 给了我“abc xyz”,我想要“abcxyz”字符串。

【问题讨论】:

    标签: handlebars.js removing-whitespace


    【解决方案1】:

    您可以自己注册一个助手并在模板中使用它来替换字符串中的空白。

    Handlebars.js has a function registerHelper(String, Function)(如您所见)接受一个字符串(您的助手的名称)和一个返回助手结果的函数。

    例如,如果我们想要一个在给定字符串中将“Facebook”替换为“Google”的辅助函数,您可以执行以下操作。

    Handlebars.registerHelper('replace', function(string) {
        return string.replace('Facebook', 'Google');
    });
    

    在模板中,我们会像 {{replace "Hello, Facebook!"}} 一样调用它,它会返回 Hello, Google!

    如果是多用途函数(在这种情况下显然应该是什么,而不是我给出的示例),您将传递要调用替换的字符串、要替换的字符串以及应该用什么来替换。

    Handlebars.registerHelper('replace', function(string, search, replace) {
        return string.replace(search, replace);
    });
    

    与我们之前使用{{replace "Hello, Facebook!" "Facebook" "Google"}}在模板中调用它的方式相同。

    【讨论】:

      【解决方案2】:

      如果您想避免编写自己的助手。您可以使用以下模块:https://github.com/helpers/handlebars-helpers

      只需安装它

      npm install --save handlebars-helpers
      

      你很高兴,你可以使用以下助手来解决你的问题:

      {{replace name " " ""}}
      

      这是另一个用法示例:

      {{replace "a b a b a b" "a" "z"}}
      <!-- results in:  'z b z b z b' -->
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-17
        • 2018-08-29
        相关资源
        最近更新 更多