首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

60行代码实现简单模板语法

不久前看过一篇不错的文章,作者用了15行代码就实现了一个简单的模板语法,我觉得很有趣,建议在阅读本文之前先看一下这个,本文不会讲解一些细节实现,这里是传送门:只有20行的Javascript模板引擎 这个模板语法实现的核心点是利用正则表达式来匹配到模板语法里面的变量和JS语句,遇到变量就将匹配到的字符串 push 到一个数组中,遇到 JS 语句就执行,最后再把数组中的字符串 join 起来,用 Function 来解析执行这串字符串,最终将执行后的结果放到指定 DOM 节点的innerHTML 里面。 但是这个模板语法还是有很多不足,比如不支持取余运算,不支持自定义模板语法,也不支持if、for、switch 之外的JS语句,缺少 HTML 实体编码。 恰好我这阵子也在看 underscore 源码,于是就参考了一下 underscore 中 template 方法的实现。 这个是我参考 template 后实现的模板,一共只有60行代码。

02

Nginx配置location总结及rewrite规则写法

location = / {     # 精确匹配 /,主机名后面不能带任何字符串     [ configuration A ]  } location / {     # 因为所有的地址都以/开头,所有这条规则将匹配到所有请求     # 但是正则和最长字符串会优先匹配     [ configuration B ] } location /documents/ {     # 匹配任何以/documents/开头的地址,匹配符合以后,还要继续往下搜索     # 只有后面的正则表达式没有匹配到时,这一条才会采用     [ configuration C ] } location ~ /documents/Abc {     # 匹配任何以 /documents/开头的地址,匹配符合以后,还要继续往下搜索     # 只有后面的正则表达式没有匹配到时,才会采用这一条      [ configuration CC ] } location ^~ /images/ {     # 匹配任何以/images/开头的地址,匹配符合以后,停止往下搜索正则,采用这一条     [ configuration D ] } location ~* \.(gif|jpg|jpeg)$ {     # 匹配所有以gif,jpg或jpeg结尾的请求     # 然而,苏朋友请求/images/下的图片会被config D处理,因为^~到达不了这一正则     [ configuration E ] } location /images/ {     # 字符匹配到 /images/,继续往下,会发现^~存在     [ configuration F ] } location /images/abc {     # 最长字符匹配到/images/abc,继续往下,会发现^~存在     # F与G的放置顺序是没有关系的     [ configuration G ] } location ~ /images/abc/ {     # 只有去掉config D才有效:先最长匹配config G开头的地址,继续往下搜索,匹配到这一正则,采用     [ configuration H ] } location ~* /js/.*/\.js

01
领券