如何在lodash模板中设置自定义转义RegExp?

时间:2015-05-15 17:13:20

标签: javascript lodash

以下是我正在尝试的内容:

_.template("Hello ___name___",{escape:/___(.*?)___/g})({name:"Steve"})

我期望的输出是:

  

你好史蒂夫

但我得到了:

  

未捕获TypeError:_. trylate(...)不是函数(匿名函数)

这是有道理的,因为:

_.template("Hello ___name___",{escape:/___(.*?)___/g})

返回字符串Hello ___name___而不是模板函数。

the docs是错误还是什么?

N.B。我不想覆盖全局_.templateSettings

1 个答案:

答案 0 :(得分:2)

如果您使用的是版本2.*(在此版本中second argument是模板的数据),您可以试试这个



console.log(_.template("Hello ___name___", null, {escape:/___(.*?)___/g})({name:"Steve"}));

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.2/lodash.js"></script>
&#13;
&#13;
&#13;

使用版本3.*,您的示例可以正常使用

&#13;
&#13;
console.log(_.template("Hello ___name___", {escape:/___(.*?)___/g})({name:"Steve"}));
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.8.0/lodash.js"></script>
&#13;
&#13;
&#13;