模板拼装最简单处理 字符串拼接版本
2016-06-20 23:33
246 查看
var html_line = html.replace(/[\r\t\n]+/g, "\n").split(/\n/)
var tpl = `var _h = []`
var _begin = '<?' , _end = '?>'
,_is = true
html_line.forEach(function(line){
while(true){
var _pos = line.indexOf(_is ? _begin : _end)
if (_pos !== -1){
var _part = line.slice(0 ,_pos )
line = line.slice(_pos + 2 )
if (_is) {
_part = _part.replace(/\"/g,`\\\"`)
if (_part.length) {
tpl += ` _h.push( "${_part}");`
}
} else {
if ('=' == _part.slice(0,1)) {
_part = _part.slice(1)
tpl += ` _h.push( ${_part});`
}else{
tpl += ` ${_part}`
}
}
}else {
if (_is) {
line = line.replace(/\"/g,`\\\"`)
if (line.length) {
tpl += ` _h.push( "${line}");`
}
} else {
tpl += ` ${line}`
}
break
}
_is = !_is
}
})
tpl += '\n return _h.join("")'
var tpl = `var _h = []`
var _begin = '<?' , _end = '?>'
,_is = true
html_line.forEach(function(line){
while(true){
var _pos = line.indexOf(_is ? _begin : _end)
if (_pos !== -1){
var _part = line.slice(0 ,_pos )
line = line.slice(_pos + 2 )
if (_is) {
_part = _part.replace(/\"/g,`\\\"`)
if (_part.length) {
tpl += ` _h.push( "${_part}");`
}
} else {
if ('=' == _part.slice(0,1)) {
_part = _part.slice(1)
tpl += ` _h.push( ${_part});`
}else{
tpl += ` ${_part}`
}
}
}else {
if (_is) {
line = line.replace(/\"/g,`\\\"`)
if (line.length) {
tpl += ` _h.push( "${line}");`
}
} else {
tpl += ` ${line}`
}
break
}
_is = !_is
}
})
tpl += '\n return _h.join("")'
相关文章推荐
- iOS开发多线程篇 05 —GCD介绍
- Android Studio中的六种依赖关系
- Swift - 文件,文件夹操作大全
- 豫园商城
- 【Objective-C】03-第一个OC程序
- 深入理解JVM--JVM垃圾回收机制
- Mybatis简介
- shape 各属性的注解
- 配置基于python的VIM环境
- 缓存的本质是什么?
- windows和linux双系统删除linux
- 配置基于python的VIM环境
- thinkphp3.2【model模型】
- ARM裸机入门简介
- HTML5多媒体audio和video(二)
- Mybatis 批量删除 单引号
- c++ 深入理解虚函数
- git
- 依赖注入的本质与里氏替换原则
- Ubuntu管理开机启动服务项 -- 图形界面的Boot-up Manager