javascript - 转义 Jade 中的文字

标签 javascript node.js escaping pug

所以这个问题之前已经被问过,但我的输出中不断出现错误。

所以,在 Jade 中转义文本。

我有这个标记

.left
  :markdown
  each post in site.posts
    a.post(href='#' + post.title)
      h2= post.title

a 标签会将滚动锚定到相应的帖子。现在我想转义 href 内的 post.title 以便删除空格。

现在我看到了类似 this 的答案和 this ,但是当我尝试编译所有内容时,它们都会抛出错误。

自定义过滤器抛出错误并提示未知过滤器,第二个过滤器抛出此错误

Unexpected token ILLEGAL
Potentially unhandled rejection [152] SyntaxError: /Users/mhartington/Github Repos/ionic-node-faq/views/index.jade:14
    12|       :markdown
    13|       each post in site.posts
  > 14|         a.post(href='#' + #{post.title})
    15|           h2= post.title
    16|     .right
    17|       each post in site.posts

关于我做错了什么有什么想法吗?

最佳答案

您可以使用 .replace()post.title 中删除空格。 :

a.post(href='#' + post.title.replace(/\s+/g, ''))

您还可以使用encodeURIComponent()URL-encode包含在 URL 中的其他特殊字符:

a.post(href='#' + encodeURIComponent(post.title.replace(/\s+/g, '')))
<小时/>

使用 #{...} 的错误是因为它是仅在 plain text 内预期的 Jade 语法。 。并且,values of attributes被解析为 JavaScript,不支持此类语法。

如果您担心对属性值进行 HTML 编码,Jade 已经根据需要进行了处理。

- post = { title: 'Foo>Bar' }
a(href='#' + post.title)
<a href="#Foo&gt;Bar"></a>

关于javascript - 转义 Jade 中的文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25924704/

相关文章:

mysql - 转义字符串在 mysql concat 函数中未转义

mysql - (Windows批处理文件)此时SET意外出现

javascript - 等待网站完成加载所有 javascript

javascript - 带有嵌套路由的 Ember.js model- 和 setupController-hook

javascript - Python读取http : html page as seen in browser - with javascripts results

Node.js stream into zip archive 和 stream zip archive 作为对客户端的响应

node.js - 使用 --生产选项和对等依赖项进行 npm install

javascript - 为什么 sinon stub 返回未定义?

javascript - 正则表达式匹配所有不在引号内的实例

javascript - 在 UI5 应用程序中读取选定表行的列索引