本文介绍系统函数及字符串如何组合嵌套使用。
如果参数化的部分(等号右侧)需要系统函数搭配字符串或者另一个系统函数,规则是直接拼接即可,不需要额外的连接字符。参考以下的例子:
-
在函数前加字符串:
=abc${sys.random(1,20)}
=-234${sys.random(1,20)}
-
两个函数拼接:
=${sys.random(1,20)}${sys.select("a","b","c")}
如果系统函数的参数中有单双引号,直接使用单引号,双引号需要在前面再加一个双引号。例如需要给一个字符串做MD5加密(系统函数是${sys.md5("")}
),以字符串包含单引号和双引号来分别举例参数化(等号右侧)写法:
-
需加密字符串是
leo say 'hi'
时:=${sys.md5("leo say 'hi'")}
-
需加密字符串是
leo say "hi"
时:=${sys.md5("leo say ""hi""")}
如果系统函数间需要嵌套使用时,不需要额外加双引号,但是函数的参数部分用到了文件参数、自定义参数(如通过字符串定义的和用系统函数定义的)或有拼接的情况才需要加双引号。参考以下例子:
-
substring的字符串是直接拼接的情况,需要带双引号:
=${sys.substring("abc${sys.random(1,20)}", 0, 1)}
-
substring的字符串是函数,所以不需要双引号,但是嵌套的MD5里面有拼接就需要双引号:
=${sys.substring(${sys.md5("${input1}${input2}")},2,5)}
-
需要给来源于数据文件的参数num2做一个base64的时候,需要加个双引号:
=${sys.base64("${num2}")}
-
更复杂的一种情况,函数的参数是字符串,这个字符串是一个JSON的情况,JSON里也带了文件参数:
需要传入函数中的JSON原文是:{"username":"${username}"} 则函数的嵌套使用如下:
=${sys.select("{""username"":""${username}""}","blue","green")}
在文档使用中是否遇到以下问题
更多建议
匿名提交