1

我正在尝试创建一个公式字段来检查一个字符串,该字符串是一系列用逗号分隔的连接值。我想检查字符串中每个逗号分隔值的前两个字符。例如,字符串模式可以是:abcd,efgh,ijkl,mnop,qrst,uvwx

在我的公式中,我想检查前两个字符是否是'ab','ef'

如果是这样,我将返回 true,否则返回 false。

谢谢。

4

2 回答 2

0

要正确执行此操作,您需要使用正则表达式。不幸的是,REGEX 函数在公式字段中不可用。但是,它在验证规则和工作流规则中的公式中可用。因此,您可以在验证或工作流程规则中指定以下公式:

OR(
AND(
    NOT(
        BEGINS( KXENDev__Languages__c, "ab" )
    ),
    NOT(
        BEGINS( KXENDev__Languages__c, "ef" )
    )
),
REGEX( KXENDev__Languages__c , ".*,(?!ab|ef).*")
)

如果它是一个验证规则,你就完成了——如果任何条目以“ab”或“ef”开头,这个公式将产生一个错误。如果它是一个工作流规则,那么您可以向它添加一个字段更新以在此公式为真时使用 False 更新某些字段(如果此公式为真,则至少有一个项目不以 ab 或 ef 开头,所以这将使您的字段为 False)。

有些人可能会问“BEGINS 语句是怎么回事?难道你不能用一个 REGEX 完成这一切吗?” 是的,我可能可以,但这会导致越来越复杂的 REGEX 语句,并且这些在 Salesforce.com 中很难调试,所以我更喜欢让 Salesforce.com 中的 REGEX 尽可能简单。

于 2013-04-04T00:02:02.647 回答
0

我建议您使用 CONTAINS 方法搜索 ',ab' 和 ',ef'。但首先你需要重新实现组成这个字符串的方法,所以它把','放在第一个子字符串之前。最后返回的字符串应该类似于 ',abcd,efgh,ijkl,mnop,qrst,uvwx'。如果您无法重新实现构成此字符串的方法,请使用 LEFT([our string going here],2) 方法检查前两个字符。

于 2013-04-04T12:06:50.750 回答