当前位置:网站首页>使用lodash替换js字符串中的变量
使用lodash替换js字符串中的变量
2022-08-02 16:58:00 【学亮编程手记】

// 使用 "interpolate" 分隔符创建编译模板
var compiled = _.template('hello <%= user %>!');
compiled({
'user': 'fred' });
// => 'hello fred!'
// 使用 HTML "escape" 转义数据的值
var compiled = _.template('<b><%- value %></b>');
compiled({
'value': '<script>' });
// => '<b><script></b>'
// 使用 "evaluate" 分隔符执行 JavaScript 和 生成HTML代码
var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');
compiled({
'users': ['fred', 'barney'] });
// => '<li>fred</li><li>barney</li>'
// 在 "evaluate" 分隔符中使用内部的 `print` 函数
var compiled = _.template('<% print("hello " + user); %>!');
compiled({
'user': 'barney' });
// => 'hello barney!'
// 使用 ES 分隔符代替默认的 "interpolate" 分隔符
var compiled = _.template('hello ${ user }!');
compiled({
'user': 'pebbles' });
// => 'hello pebbles!'
// 使用自定义的模板分隔符
_.templateSettings.interpolate = /{
{([\s\S]+?)}}/g;
var compiled = _.template('hello {
{ user }}!');
compiled({
'user': 'mustache' });
// => 'hello mustache!'
// 使用反斜杠符号作为纯文本处理
var compiled = _.template('<%= "\\<%- value %\\>" %>');
compiled({
'value': 'ignored' });
// => '<%- value %>'
// 使用 `imports` 选项导入 `jq` 作为 `jQuery` 的别名
var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';
var compiled = _.template(text, {
'imports': {
'jq': jQuery } });
compiled({
'users': ['fred', 'barney'] });
// => '<li>fred</li><li>barney</li>'
// 使用 `sourceURL` 选项指定模板的来源URL
var compiled = _.template('hello <%= user %>!', {
'sourceURL': '/basic/greeting.jst' });
compiled(data);
// => 在开发工具的 Sources 选项卡 或 Resources 面板中找到 "greeting.jst"
// 使用 `variable` 选项确保在编译模板中不声明变量
var compiled = _.template('hi <%= data.user %>!', {
'variable': 'data' });
compiled.source;
// => function(data) {
// var __t, __p = '';
// __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
// return __p;
// }
// 使用 `source` 特性内联编译模板
// 便以查看行号、错误信息、堆栈
fs.writeFileSync(path.join(cwd, 'jst.js'), '\ var JST = {\ "main": ' + _.template(mainText).source + '\ };\ ');
边栏推荐
猜你喜欢
随机推荐
“蔚来杯“2022牛客暑期多校训练营4 E - Jobs (Hard Version)
sql2008 database suspicious solution _sqlserver2008 database suspicious
Antd-ProComponents中的EditableProTable无法在子行继续新增子子行的临时解决方案
金仓数据库KingbaseES安全指南--6.12. BSD身份验证
【一】TS安装编译配置自动生成.js文件
navicat creates a connection 2002-can't connect to server on localhost (10061) and the mysql service has started the problem
Locking and concurrency control (a)
navicat创建连接 2002-can‘t connect to server on localhost(10061)且mysql服务已启动问题
[300+ selected big factory interview questions continue to share] Big data operation and maintenance sharp knife interview questions column (10)
Nacos interview questions
golang源码分析(9)调度
Nacos的基本配置
Common software silent installation parameters
golang刷leetcode动态规划(8)盈利计划
在idea中创建web项目_idea部署web项目
navicat premium 15 下载安装详细教程
Coordinate knowledge in digital twin campus scenarios
RAID存储级别分类
golang源码分析(7):chan
Numpy those things









