Duaer

表达式与代码

字符串上的转换方法

在 Duaer 表达式里,字符串方法做大小写、截取、判断邮箱和网址,以及 base64 和 URL 编解码。调用写在字符串后面。

判断和取出

  • isEmpty()、isNotEmpty()、length:空、不空、长度。
  • includes(文字)、startsWith(文字)、indexOf(文字)、search(文字)、match(正则):是否包含、是否以此开头、位置、搜索、按正则匹配。
  • isEmail()、isUrl()、isDomain()、isNumeric():像不像邮箱、网址、域名、数字。
  • extractEmail()、extractUrl()、extractUrlPath()、extractDomain():从一段文字里取出邮箱、网址、路径或域名。

改写和转换

  • toLowerCase()、toUpperCase()、toTitleCase()、toSentenceCase()、toSnakeCase():改大小写或变成蛇形。
  • trim():去掉两端空白。replace(找, 换)、replaceAll(找, 换):替换。replaceSpecialChars():处理特殊字符。removeMarkdown()、removeTags():去掉 Markdown 或 HTML 标签。
  • slice(起, 止)、substring(起, 止)、split(分隔符)、concat(另一段):截取、拆开、接上。
  • quote():加上引号。
  • base64Encode()、base64Decode()、urlEncode()、urlDecode()、hash():编码、解码、哈希。
  • parseJson():把 JSON 字符串解析成对象。toJsonString():再变成 JSON 字符串。
  • toNumber()、toBoolean()、toDateTime():转成数字、布尔或 DateTime。
{{ $json.note.extractEmail() }}

常见问题

Duaer 的 extractEmail 做什么?

在 Duaer 表达式里,extractEmail() 从一段字符串里取出邮箱地址。同类还有 extractUrl()、extractUrlPath() 和 extractDomain()。isEmail() 只判断像不像邮箱,不取出内容。

Duaer 字符串怎么解析成 JSON?

在 Duaer 表达式里,parseJson() 把 JSON 字符串解析成对象或数组。toJsonString() 再变回 JSON 字符串。toNumber()、toBoolean()、toDateTime() 分别转成数字、布尔和 DateTime。

同组

变量

在 Duaer 里定义可复用的变量

Duaer 的变量把一份值存起来,给多条数字组织用。表达式和 Code 节点里写成 $vars.键名。变量一律是字符串,运行中只读。

表达式

在 Duaer 里写表达式

Duaer 表达式写在 {{ }} 里,用来在节点参数中读取当前项、前面的节点和变量。只做字段整理时,先用 Edit Fields(Set)节点把数据准备好。

表达式

Duaer 表达式里的内置方法和变量

Duaer 在表达式里提供读取数据的变量和按类型调用的方法。Code 节点跑的是普通 JavaScript 和原生 Luxon,标成 Duaer 扩展的方法在那里可能不存在,或参数不一样。

表达式

表达式里常用的快捷方法

Duaer 表达式用 $json 读当前项,用 $("节点名") 读前面的节点,用 $now 和 $if() 处理时间和条件。这些名字在参数的表达式模式里可用。

表达式

HTTP 节点分页时能用的变量

Duaer 的 HTTP Request 节点在分页表达式里提供 $pageCount、$request 和 $response。这三个名字只在这个节点里有效,别的节点写了也读不到。

转换

按数据类型使用转换方法

Duaer 表达式可以在值后面调用转换方法,例如 {{ $json.name.toTitleCase() }}。这些方法按数组、布尔、日期、数字、对象、字符串分开。Code 节点没有这套扩展。

转换

数组上的转换方法

在 Duaer 表达式里,数组方法写在数组后面,例如 {{ $json.ids.unique() }}。average、max、min 遇到非数字会报错。

转换

布尔值上的转换方法

在 Duaer 表达式里,布尔值可以判断空不空,也可以转成数字或字符串。true 转成数字是 1,false 是 0。

转换

日期上的转换方法

在 Duaer 表达式里,$now 和 $today 是 Luxon 的 DateTime。字符串或数字要先 toDateTime(),再调用 format、plus、setZone 这些方法。

转换

数字上的转换方法

在 Duaer 表达式里,数字方法做取整、奇偶判断,以及转成布尔、字符串或 DateTime。round 取最接近的数,ceil 向上,floor 向下。

转换

对象上的转换方法

在 Duaer 表达式里,对象方法用来判断字段、删字段、合并,以及把对象编成查询字符串。keys() 和 values() 分别给出字段名和值。

查询

用 JMESPath 查询 JSON

Duaer 用 $jmespath(对象, "查询") 在 JSON 上做 JMESPath 查询。表达式和 JavaScript 的 Code 节点可以用。Python 的 Code 节点没有这个函数。

日期

在表达式里用 Luxon 处理日期

Duaer 表达式里的日期是 Luxon 的 DateTime。$now 和 $today 直接就是 DateTime。Code 节点用的是原生 Luxon,format() 和 plus(数量, 单位) 不能照搬过去。

示例

Duaer 表达式示例

这些示例都在 Duaer 的表达式模式里。它们读取当前项、补上默认值、格式化日期,并在字段很多时改用 Edit Fields(Set)。

示例

方法和变量对照

这是 Duaer 表达式里最常用的名字。当前项用 $json,前面的节点用 $("节点名"),变量用 $vars,转换方法按数据类型分到各自的页面。