How To

在业务规则中使用文本函数

文本函数让你能够利用业务规则分解、整合并格式化文本。支持的函数如下所示:


先决条件


你应熟悉以下主题:

业务规则支持的文本函数


查看下表,了解业务规则支持的文本函数。

函数

描述

示例

输出

ADDTOCURRENTDATE

将一个值加入当前日期,以指定格式返回新日期。查看 GETCURRENDATE,了解有可能使用的日期格式和日期部分。区间就是加入该日期的天数、月数、年数等。使用负区间可以得到过去的日期。谷歌购物的默认模板使用该函数来设定数据源到期日期。

ADDTOCURRENTDATE("yyy-MM-dd","d",30)

                   

如果当前日期是2007425日,返回2007-05-25(May 25)

CONCATENATE

最多将8个文本字符串加入一个字符串。输入的字符串之间没有空格或其它分隔符。

CONCATENATE("Space","man")

                   

"Spaceman"

CONCATENATE($ITEMBRAND, " ", $COLOR, " ", $SIZE)

将几个属性合并之后成为一个标题

CONTAINS

搜索文本是否出现在字符串中。搜索区分大小写。

CONTAINS("cookies","ook")

                   

true

DEDUP

给定一个分隔的物品列表和分隔符,返回一个唯一物品的分隔列表。

DEDUP("Red,Blue,Red,Green")

                   

"Blue,Green,Red"

GETCURRENCYCODE

返回特定语言平台的三个字符货币代码缩写。某些提供商要求在数据源中提交该值。通常默认提供商模板将对其进行处理。

GETCURRENCYCODE("en-GB")

                   

GBP

GETCURRENTDATE

以指定格式返回当前日期。可用格式选项的完整列表与 Microsoft.Net提供的相同。你可以使用期日期格式文档。基本选项如下所示,将其进行组合就能获得想要的效果。该模式区分大小写——“m”返回的是分钟,而不是月。

GETCURRENTDATE(MMddyyyy)

                   

03212009

GETDAYSBETWEEN

返回规则中指定的两个日期间的天数。如果两个日期相同,那么结果就是0

 GETDAYSBETWEEN("05/25/2015", "06/25/2015", "MM/dd/yyyy")

31

GETDAYSSINCE

返回当前日期和规则中指定日期之间的天数。

 

 GETDAYSSINCE("01/01/2015","MM/dd/yyyy")

 

If current date is 01/16/2015, this will return 15.

GETPART

获得文本字符串的第n个部分,在文本中,这些部分是由一些字符分隔的。如果提交的是负数,则从末尾倒数。

GETPART("Clothing --> Pants --> Velvet Bellbottoms","-->",3)

                   

"Velvet Bellbottoms"

JOIN

最多将8个文本字符串加入一个字符串,使用指定的分隔符。

JOIN(" ","Hello","there")

                   

"Hello there"

LEFT

返回文本字符串左起的指定数字的字符。

LEFT("Hello world!",2)

                   

"He"

LEFT($ITEMDESCRIPTION, 2000)

发送从Description (描述)字段的起始位置算起的前2000个字符。

LENGTH

返回字符串中字符的数目。

LENGTH("Hello world!")

                   

12

LTRIM

从文本字符串的开头删除所有空白字符。文本字符串可以是字段值或者引用的文本字段。空白部分包括:空格、制表符、回车符和换行符。

LTRIM(" toast ")

                   

"toast "

PROPER

输入文本词首字母大写。

PROPER("This is my title.")

                   

"This Is My Title."

REDUCE

通过使用一个用户提供的规则,将所有子项给定属性的值整合到一个值中。

REDUCE(FUNCTION(VARS(@X,@Y), CONCATENATE(@X,"~",@Y)),$CHILDREN.COLOR,"")

                   

~Red~Blue~Green [假设三个子项有一个名为颜色的属性,该属性值分别是:红色、蓝色和绿色]

REDUCELIST

通过使用一个用户提供的规则,将给定查找列表中的值整合到一个值中。

REDUCELIST(FUNCTION(VARS(@X,@Y,@Z), CONCATENATE(@X,"~",@Y)), "some list","")

                   

~Red~Blue~Green [假设有一个名为一些列表的列表子项,其名称为红色、蓝色和绿色]

REGEXGET

返回正则表达式的首个匹配,如果不匹配,返回内容为空白。

REGEXGET("Book","o+")

                   

"oo"

REGEXMATCH

如果字符串包含一个正则表达式,返回真;否则返回假。

REGEXMATCH("Book","o+")

                   

True

REGEXREPLACE

利用正则表达式在字符串中找到文本,并用新文本替换所有匹配的文本。如果被替代的文本在字符串中出现一次以上,所有匹配文本都将被替代。这是一个更强版的 REPLACE函数。你必须知道正则表达式如何使用该函数。它们有一定的学习曲线,但是你可以在这里学习如何使用:http://www.regular-expressions.info/

REGEXREPLACE (" Hello", "^[ \t]+", "")

                   

"Hello"此处使用的正则表达式的功能与 LTRIM完全一致,但是有更多有用的功能。

REGEXREPLACE($ITEMDESCRIPTION, "'", "\"")

将 Description (描述)字段里的所有单引号移除,并且用双引号代替它们。

REPLACE

找到字符串中的文本,并用新文本替代所有匹配的文本。

REPLACE("coconut","co","wing")

                   

"wingwingnut"

REPLACE($ITEMTITLE, $ITEMBRAND, "")

将品牌名称从SKU的标题移除

REPLACEWORDLIST

查看输入文本中的每个词,并取代来自提供的列表的相应查找值——如果存在的话。

REPLACEWORDLIST("mylist","Big Box of Stuff")

                   

"Huge Box of Things" [假设有一个名为“ mylist”的列表,其中包含条目 "Big" -> "Huge" "Stuff" -> "Things"]

RIGHT

返回从文本字符串右起指定数字的字符。

RIGHT("Hello world!",2)

                   

"d!"

RTRIM

从文本字符串的末尾删除所有空格字符。

RTRIM(" toast ")

                   

" toast"

STRIPHTML

从文本中删除表格标签<tag>。这也将去掉XML标签。此外,单独出现的< or >字符将被互联,但是如果都以相同的顺序出现在一个文本中,它们之间的所有文本将被删除。

如果某些标签需要留在原地,输入标签的第二个参数,用逗号分隔开。

STRIPHTML ("<b>Hello</b>")

                   

STRIPHTML("<p><b>Hello</b></p>","p")

                   

"Hello"

"<p>Hello</p>"

STRIPHTML($ITEMDESCRIPTION)

将 Description (描述)字段里的HTML全部移除

TOLOWER

将文本转化成小写字母。

TOLOWER("My Cat")

                   

"my cat"

TOUPPER

将文本转化为大写字母。

TOUPPER("My Cat")

                   

"MY CAT"

TRIM

从文本的开头和末尾删除所有空白字符。

TRIM(" toast ")

                   

"toast"

URLENCODE

编码字符串,使其出现在 URL中。

URLENCODE("Home And Garden")

                   

"Home%20And%20Garden"

文本函数让你能够利用业务规则分解、整合并格式化文本。支持的函数如下所示:


先决条件


你应熟悉以下主题:

业务规则支持的文本函数


查看下表,了解业务规则支持的文本函数。

函数

描述

示例

输出

ADDTOCURRENTDATE

将一个值加入当前日期,以指定格式返回新日期。查看 GETCURRENDATE,了解有可能使用的日期格式和日期部分。区间就是加入该日期的天数、月数、年数等。使用负区间可以得到过去的日期。谷歌购物的默认模板使用该函数来设定数据源到期日期。

ADDTOCURRENTDATE("yyy-MM-dd","d",30)

                   

如果当前日期是2007425日,返回2007-05-25(May 25)

CONCATENATE

最多将8个文本字符串加入一个字符串。输入的字符串之间没有空格或其它分隔符。

CONCATENATE("Space","man")

                   

"Spaceman"

CONCATENATE($ITEMBRAND, " ", $COLOR, " ", $SIZE)

将几个属性合并之后成为一个标题

CONTAINS

搜索文本是否出现在字符串中。搜索区分大小写。

CONTAINS("cookies","ook")

                   

true

DEDUP

给定一个分隔的物品列表和分隔符,返回一个唯一物品的分隔列表。

DEDUP("Red,Blue,Red,Green")

                   

"Blue,Green,Red"

GETCURRENCYCODE

返回特定语言平台的三个字符货币代码缩写。某些提供商要求在数据源中提交该值。通常默认提供商模板将对其进行处理。

GETCURRENCYCODE("en-GB")

                   

GBP

GETCURRENTDATE

以指定格式返回当前日期。可用格式选项的完整列表与 Microsoft.Net提供的相同。你可以使用期日期格式文档。基本选项如下所示,将其进行组合就能获得想要的效果。该模式区分大小写——“m”返回的是分钟,而不是月。

GETCURRENTDATE(MMddyyyy)

                   

03212009

GETDAYSBETWEEN

返回规则中指定的两个日期间的天数。如果两个日期相同,那么结果就是0

 GETDAYSBETWEEN("05/25/2015", "06/25/2015", "MM/dd/yyyy")

31

GETDAYSSINCE

返回当前日期和规则中指定日期之间的天数。

 

 GETDAYSSINCE("01/01/2015","MM/dd/yyyy")

 

If current date is 01/16/2015, this will return 15.

GETPART

获得文本字符串的第n个部分,在文本中,这些部分是由一些字符分隔的。如果提交的是负数,则从末尾倒数。

GETPART("Clothing --> Pants --> Velvet Bellbottoms","-->",3)

                   

"Velvet Bellbottoms"

JOIN

最多将8个文本字符串加入一个字符串,使用指定的分隔符。

JOIN(" ","Hello","there")

                   

"Hello there"

LEFT

返回文本字符串左起的指定数字的字符。

LEFT("Hello world!",2)

                   

"He"

LEFT($ITEMDESCRIPTION, 2000)

发送从Description (描述)字段的起始位置算起的前2000个字符。

LENGTH

返回字符串中字符的数目。

LENGTH("Hello world!")

                   

12

LTRIM

从文本字符串的开头删除所有空白字符。文本字符串可以是字段值或者引用的文本字段。空白部分包括:空格、制表符、回车符和换行符。

LTRIM(" toast ")

                   

"toast "

PROPER

输入文本词首字母大写。

PROPER("This is my title.")

                   

"This Is My Title."

REDUCE

通过使用一个用户提供的规则,将所有子项给定属性的值整合到一个值中。

REDUCE(FUNCTION(VARS(@X,@Y), CONCATENATE(@X,"~",@Y)),$CHILDREN.COLOR,"")

                   

~Red~Blue~Green [假设三个子项有一个名为颜色的属性,该属性值分别是:红色、蓝色和绿色]

REDUCELIST

通过使用一个用户提供的规则,将给定查找列表中的值整合到一个值中。

REDUCELIST(FUNCTION(VARS(@X,@Y,@Z), CONCATENATE(@X,"~",@Y)), "some list","")

                   

~Red~Blue~Green [假设有一个名为一些列表的列表子项,其名称为红色、蓝色和绿色]

REGEXGET

返回正则表达式的首个匹配,如果不匹配,返回内容为空白。

REGEXGET("Book","o+")

                   

"oo"

REGEXMATCH

如果字符串包含一个正则表达式,返回真;否则返回假。

REGEXMATCH("Book","o+")

                   

True

REGEXREPLACE

利用正则表达式在字符串中找到文本,并用新文本替换所有匹配的文本。如果被替代的文本在字符串中出现一次以上,所有匹配文本都将被替代。这是一个更强版的 REPLACE函数。你必须知道正则表达式如何使用该函数。它们有一定的学习曲线,但是你可以在这里学习如何使用:http://www.regular-expressions.info/

REGEXREPLACE (" Hello", "^[ \t]+", "")

                   

"Hello"此处使用的正则表达式的功能与 LTRIM完全一致,但是有更多有用的功能。

REGEXREPLACE($ITEMDESCRIPTION, "'", "\"")

将 Description (描述)字段里的所有单引号移除,并且用双引号代替它们。

REPLACE

找到字符串中的文本,并用新文本替代所有匹配的文本。

REPLACE("coconut","co","wing")

                   

"wingwingnut"

REPLACE($ITEMTITLE, $ITEMBRAND, "")

将品牌名称从SKU的标题移除

REPLACEWORDLIST

查看输入文本中的每个词,并取代来自提供的列表的相应查找值——如果存在的话。

REPLACEWORDLIST("mylist","Big Box of Stuff")

                   

"Huge Box of Things" [假设有一个名为“ mylist”的列表,其中包含条目 "Big" -> "Huge" "Stuff" -> "Things"]

RIGHT

返回从文本字符串右起指定数字的字符。

RIGHT("Hello world!",2)

                   

"d!"

RTRIM

从文本字符串的末尾删除所有空格字符。

RTRIM(" toast ")

                   

" toast"

STRIPHTML

从文本中删除表格标签<tag>。这也将去掉XML标签。此外,单独出现的< or >字符将被互联,但是如果都以相同的顺序出现在一个文本中,它们之间的所有文本将被删除。

如果某些标签需要留在原地,输入标签的第二个参数,用逗号分隔开。

STRIPHTML ("<b>Hello</b>")

                   

STRIPHTML("<p><b>Hello</b></p>","p")

                   

"Hello"

"<p>Hello</p>"

STRIPHTML($ITEMDESCRIPTION)

将 Description (描述)字段里的HTML全部移除

TOLOWER

将文本转化成小写字母。

TOLOWER("My Cat")

                   

"my cat"

TOUPPER

将文本转化为大写字母。

TOUPPER("My Cat")

                   

"MY CAT"

TRIM

从文本的开头和末尾删除所有空白字符。

TRIM(" toast ")

                   

"toast"

URLENCODE

编码字符串,使其出现在 URL中。

URLENCODE("Home And Garden")

                   

"Home%20And%20Garden"

0
Your rating: None
0
Your rating: None