使用此插件

rfl 函数使用以下参数:

  • lv(必需,字符串):包含分隔值列表的变量(或字符串)
  • vr(必需,字符串):要从 lv 参数中删除的值。Adobe 建议不要在一次 rfl 调用期间删除多个值。
  • d1(可选,字符串):lv 参数使用的分隔符。默认使用逗号 (,)。
  • d2(可选,字符串):您希望返回字符串使用的分隔符。默认为与 d1 参数的相同值。
  • df(可选,布尔):如果为 true,则仅从 lv 参数中强制删除重复的 vr 参数实例,而不是所有实例。如果未设置,则默认为 false

调用此函数将返回一个修改后的字符串,该字符串将包含 lv 参数,但不包含 vr 参数中指定的值的任何实例(或重复实例)。

示例调用

示例 1

如果…

s.events = "event22,event24,event25";

…并运行以下代码…

s.events = rfl(s.events,"event24");

…s.events 的最终值将为:

s.events = "event22,event25";

示例 2

如果…

s.events = "event22,event24,event25";

…并运行以下代码…

s.events = rfl(s.events,"event26");

…s.events 的最终值将为:

s.events = "event22,event24,event25";

在此示例中,rfl 调用未对 s.events 做出任何更改,因为 s.events 中不包含“event26”

示例 3

如果…

s.events = "event22,event24,event25";

…并运行以下代码…

s.events = rfl(s.events);

…s.events 的最终值将为:

s.events = "";

如果在 rfl 调用中 lv 参数或 vr 参数为空,则插件将不返回任何内容。

示例 4

如果…

s.prop4 = "hello|people|today";

…并运行以下代码…

s.eVar5 = rfl(s.prop4,"people","|");

…s.prop4 的最终值仍将为…

s.prop4 = "hello|people|today";

…但 s.eVar5 的最终值将为:

s.eVar5 = "hello|today";

请记住,此插件仅返回一个值;实际上,此插件不会“重置”通过 lv 参数传入的变量。

示例 5

如果…

s.prop4 = "hello|people|today";

…并运行以下代码…

s.prop4 = rfl(s.prop4,"people");

…s.prop4 的最终值仍将为…

s.prop4 = "hello|people|today";

如果 lv 参数值包含的分隔符不同于默认分隔符(即逗号),请务必设置 d1 参数。

示例 6

如果…

s.events = "event22,event23,event25";

…并运行以下代码…

s.events = rfl(s.events,"EVenT23");

…s.events 的最终值将为:

s.events = "event22,event23,event25";

尽管此示例不太符合实际,但它表明需要传递区分大小写的值。

示例 7

如果…

s.events = "event22,event23:12345,event25";

…并运行以下代码…

s.events = rfl(s.events,"event23");

…s.events 的最终值将为:

s.events = "event22,event25";

示例 8

如果…

s.events = "event22,event23:12345,event25";

…并运行以下代码…

s.events = rfl(s.events,"event23:12345");

…s.events 的最终值将为:

s.events = "event22,event23:12345,event25";

当需要删除使用序列化和/或数值/货币语法的事件时,您应仅在 rfl 调用中指定事件本身(即不指定序列化/数值/货币值)。

示例 9

如果…

s.events = "event22,event23,event23,event23,event24,event25";

…并运行以下代码…

s.events = rfl(s.events,"event23");

…s.events 的最终值将为:

s.events = "event22,event24,event25");

示例 10

如果…

s.events = "event22,event23,event23,event23,event24,event25";

…并运行以下代码…

s.events = rfl(s.events,"event23", "", "",true);

…s.events 的最终值将为:

s.events = "event22,event23,event24,event25");

示例 11

如果…

s.events = "event22,event23,event23,event23,event24,event25";

…并运行以下代码…

s.events = rfl(s.events,"event23", "", "|",true);

…s.events 的最终值将为:

s.events = "event22|event23|event24|event25");

示例 12

如果…

s.events = "event22,event23,event24,event25";

…并运行以下代码…

s.events = rfl(s.events,"event23,event24");

…s.events 的最终值将为:

s.events = "event22,event23,event24,event25";

不支持在 vr 参数中设置多个值。上例中的 rfl 逻辑将先拆分 lv 参数(即 s.events)中的各个值,然后再尝试将每个分隔的值与完整的 vr 参数值(即 "event23,event24")进行匹配。

示例 13

如果…

s.events = "event22,event23,event24,event25";

…并运行以下代码…

s.events = rfl(s.events,"event23");
s.events = rfl(s.events,"event24");

…s.events 的最终值将为:

s.events = "event22,event25");

要从列表中删除的每个值都应包含在其自己的 rfl 调用中。

示例 14

如果…

s.linkTrackVars = "events,eVar1,eVar2,eVar3";

…并运行以下代码…

s.linkTrackVars = rfl(s.linkTrackVars,"eVar2", ",", ",", false);

…s.linkTrackVars 的最终值将为:

s.linkTrackVars = "events,eVar1,eVar3";

rfl 调用末尾的最后三个参数(即 ",",",",false)不是必需的,但是由于它们与默认设置匹配,因此即使它们存在也不会“造成任何不利影响”。

示例 15

如果…

s.events = "event22,event23,event24";

…并运行以下代码…

rfl(s.events,"event23");

…s.events 的最终值仍将为:

s.events = "event22,event23,event24";

同样地,此插件仅返回一个值;实际上,此插件不会“重置”通过 lv 参数传入的变量。

版本历史记录

2.1(2021 年 3 月 19 日)

  • 以上下文数据形式添加了版本号。

2.01(2019 年 9 月 17 日)

  • 修复了关于默认分隔符值的小错误

2.0(2018 年 4 月 16 日)

  • 修正版本(重新编译,代码更小)。
  • 删除了使用 join 插件的需要。

1.0(2016 年 7 月 18 日)

  • 第一版。

Analytics