javascript模板引擎可以忽略某些标签<w:t> </w:t>吗?

时间:2016-04-25 12:56:41

标签: javascript templates ms-word openxml docx

我正在开发docx模板应用程序。

var data={ firstname:"david", age: 12}
var template= " {{firstname}} is {{age}} years old."

通常情况下,使用上述数据和模板将呈现:

david is 12 years old.

在我的情况下,模板字符串将首先用Microsoft Word编写,然后我将使用getOOxml命令(office.js库),这样的内容将被返回。

var template = "<w:t>{{</w:t><w:t>firstname</w:t><w:t>}}</w:t> is <w:t>{{</w:t><w:t>age</w:t><w:t>}}</w:t> years old."

我使用getOOxml而不是getText命令的原因是OOxml可以包含格式信息,但Text不能。

我想使用javascript模板引擎进行渲染,但<w:t>标记会阻止模板引擎工作。

是否有javascript模板引擎可以进入<w:t>

1 个答案:

答案 0 :(得分:0)

在运行handlebars.js或您正在使用的任何预处理器之前,使用正则表达式删除这些标记。

var source = "<w:t>{{</w:t><w:t>firstname</w:t><w:t>}}</w:t> is <w:t>{{</w:t><w:t>age</w:t><w:t>}}</w:t> years old.";

// Remove those tags.
source = source.replace(/\<w\:t\>/g, "").replace(/\<\/w\:t\>/g, "");

// Run your template through your pre-processor.
var template = Handlebars.compile(source);

演示: https://jsfiddle.net/Ly48395t/